public static void transfer(HttpServletRequest httpServletRequest) {
		// transHeaderMetadata: for example, {"trans-headers" : {"header1,header2,header3":""}}
		Map<String, String> transHeaderMetadata = MetadataContextHolder.get().getTransHeaders();
		if (!CollectionUtils.isEmpty(transHeaderMetadata)) {
			String transHeaders = transHeaderMetadata.keySet().stream().findFirst().orElse("");
			String[] transHeaderArray = transHeaders.split(",");
			Enumeration<String> httpHeaders = httpServletRequest.getHeaderNames();
			while (httpHeaders.hasMoreElements()) {
				String httpHeader = httpHeaders.nextElement();
				Arrays.stream(transHeaderArray).forEach(transHeader -> {
					if (transHeader.equals(httpHeader)) {
						String httpHeaderValue = httpServletRequest.getHeader(httpHeader);
						// for example, {"trans-headers-kv" : {"header1":"v1","header2":"v2"...}}
						MetadataContextHolder.get().setTransHeadersKV(httpHeader, httpHeaderValue);
					}
				});
			}
		}
	}
@Test
	public void transferServletTest() {
		MetadataContext metadataContext = MetadataContextHolder.get();
		metadataContext.setTransHeaders("header1,header2,header3", "");
		MockHttpServletRequest request = new MockHttpServletRequest();
		request.addHeader("header1", "1");
		request.addHeader("header2", "2");
		request.addHeader("header3", "3");
		TransHeadersTransfer.transfer(request);
		Map<String, String> transHeadersKV = MetadataContextHolder.get().getTransHeadersKV();
		assertThat(transHeadersKV.get("header1")).isEqualTo("1");
		assertThat(transHeadersKV.get("header2")).isEqualTo("2");
		assertThat(transHeadersKV.get("header3")).isEqualTo("3");
	}