在系统演进过程中,往往会遇到技术栈不兼容的问题。
比如公司一直用的.net技术栈,而你是Java技术栈或其他,为了做兼容,自主开发了以下中转服务,该服务已上线,目前稳定。
虽然可以使用Nginx的路由负载机制,来实现多技术栈的兼容,但考虑到要降低对现有业务的影响。所以采取了保守的解决方案。
实现原理
1、在iis上创建一个站点,通过该站点接收http请求
2、A服务根据Content-type和请求方法路由访问不同的B服务接口
3、A服务只做请求和响应数据的透传文章来源:https://www.toymoban.com/news/detail-667514.html
代码实战
A服务代码(.net)
主要是将访问B服务的接口路由放到了Header中文章来源地址https://www.toymoban.com/news/detail-667514.html
public class ApiController : Controller
{
static string url = "http://localhost:8949";
[System.Web.Mvc.HttpGet]
public ActionResult Index()
{
string route = Request.Headers["proxyRoute"];
string requestUrl = $"{
url}/{
route}?{
Request.QueryString}";
Task<string> task = getRequest(requestUrl);
return result(task.Result);
}
[System.Web.Mvc.HttpPost]
public ActionResult Index(string xx)
{
string requestInfo = null;
Request.InputStream.Position = 0;
using (var reader = new StreamReader(Request.InputStream, Encoding.UTF8))
{
var requestBody = reader.ReadToEnd();
try
到了这里,关于DDD的单Controller实战-解决技术栈兼容问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!