当前位置: 首页 > news >正文

国外网站免费dns宝安建设工程交易服务网

国外网站免费dns,宝安建设工程交易服务网,专门做ui图标的网站,北京首都功能优化在上一篇文章中#xff0c;我们使用SpringBoot和Docker创建了第一个微服务“ ProductService”。 在这一部分中#xff0c;我们将详细介绍如何使用Spring Cloud#xff0c;netflix库#xff0c;API网关来管理多个微服务。 假设对于我们的订单管理系统#xff0c;最小关系… 在上一篇文章中我们使用SpringBoot和Docker创建了第一个微服务“ ProductService”。 在这一部分中我们将详细介绍如何使用Spring Cloudnetflix库API网关来管理多个微服务。 假设对于我们的订单管理系统最小关系可能是这样的 因此让我们以构建“ productService”的类似方式再构建两个名为“ orderService”和“ customerService”的服务。 订购服务 要创建订单我们可以传递customerId以及带有productId和数量的项目列表。 让我们看看如何做到这一点 PostMapping(/orders)public Order save(RequestBody CustomerOrderRequest request) {return orderRepository.save(Order.builder().customerId(request.getCustomerId()).externalReference(request.getExternalReference()).items(toItems(request.getItems())).build());}private List toItems(List items) {return items.stream().map(item - Item.builder().productId(item.getProductId()).quantity(item.getQuantity()).build()).collect(Collectors.toList());} 在这里我们将customerId和带有productIds的项目列表保存到数据库中。 为了获取完整的订单明细我们需要完整的客户对象和产品明细。 结果看起来像这样 {orderId: 1234,externalReference: 234257hf,customer: {id: 123,firstName: anirudh,lastName: bhatnagar,phone: 21323,email: testtest.com,address: {addressLine1: 123,addressLine2: pwe,city: Syd,state: NSW,country: Aus,postcode: 2000}},createdDate: 2018-11-12,items: [{product: {id: 123,name: Nike Shoes,description: Mens shoes,price: 100,sku: 1234},quantity: 3}],totalOrderCost: 300.00,totalOrderTax: 30.00 } 详细的订单响应应包含客户地址产品和订单总成本的详细信息。 为了获取此信息订购服务将需要从产品服务和客户服务获取详细信息。 从Order Service中的ProductService获取产品详细信息 为了获取Order Service中的产品服务详细信息我们需要一个正在运行的产品服务以及一个orderController客户端以对ProductService进行http GET调用。 对于httpClient我们将使用Netflix提供的OpenFeign客户端库它可以作为spring-cloud starter的一部分使用因此让我们在build.gradle文件中添加该依赖项 implementation(org.springframework.cloud:spring-cloud-starter-openfeign) dependencyManagement {imports {mavenBom org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}} } 现在我们已经添加了依赖项我们将使用FeignClient为此服务创建一个名为“ ProductServiceProxy”的代理接口 FeignClient(name product-service, url localhost:8001) public interface ProductServiceProxy {GetMapping(/products/{id})Product getProduct(PathVariable(id) Long id); } 我们已经在界面中添加了注释FeignClient并配置了产品服务的名称和URL。 我们还需要通过在主类中添加另一个注释来为我们的应用程序启用Feign客户端 SpringBootApplication EnableFeignClients public class OrderServiceApplication { ...... 最后我们需要调用在本地主机端口8001上运行的产品服务以使用订单中提供的产品ID获取产品详细信息并填充订单详细信息响应对象 GetMapping(/orders/{id})public CustomerOrderDetails getOrders(PathVariable(id) Long orderId) {final Order order orderRepository.findById(orderId).orElse(null);if (order null) {return null;}return toCustomerOrderDetails(order);}private CustomerOrderDetails toCustomerOrderDetails(Order order) {return CustomerOrderDetails.builder().orderId(order.getId()).createdDate(order.getCreatedDate()).externalReference(order.getExternalReference()).items(toItemList(order.getItems())).build();}private Listcom.anirudhbhatnagar.orderService.dto.product.Item toItemList(ListItem items) {return items.stream().map(item - toItemDto(item)).collect(Collectors.toList());}private com.anirudhbhatnagar.orderService.dto.product.Item toItemDto(Item item) {return com.anirudhbhatnagar.orderService.dto.product.Item.builder().product(productServiceProxy.getProduct(item.getProductId())).build();} 如果您仔细看一下上面的代码 productServiceProxy.getProduct(item.getProductId()) 您将看到一旦获得获取获取给定orderId的订单详细信息的请求我们首先将获取保存在订单服务数据库中的订单数据然后使用每个项目或订单中提供的productId我们将调用productService并填充orderDetails响应对象。 测试一下 一旦orderService启动并在端口8002上运行并且productService在端口8001上运行。我们可以测试我们的应用程序确保有一些使用产品服务创建的产品如先前的博客所述 。 记下您在产品服务中创建的productId并使用相同的代码创建新订单使用邮递员在http// localhost8002 / orders上进行POST请求如下 { customerId : 123, externalReference : 1234567, items : [{productId : 1,quantity : 2 }] } 这将创建一个新订单而不是在响应中查找订单ID。 现在使用以下订单ID获取订单详细信息在http// localhost / 8002 / orders / {order-id}上执行GET这将返回以下响应 {orderId: 12,externalReference: 1234567,customer: null,createdDate: null,items: [{product: {id: 1,name: Nike,description: Shoes,price: 100,sku: 1234},quantity: 2}],totalOrderCost: 200 } 因此在这里我们看到了订单服务如何向产品服务发出请求并填充响应对象。 但是我们仍然将客户视为“ null”因此为了填充客户详细信息我们需要从客户服务获取。 为了设置客户服务我们将执行以下操作 1.以与我们使用Spring初始化程序进行产品或订单服务类似的方式设置客户服务。 2.在OrderService中设置代理客户端服务 3.从Order Controller调用CustomerService以在Order Details响应对象内填充客户详细信息。 如果一切正常我们也应该查看客户详细信息。 当前我们已经在订单服务中对服务的URL进行了硬编码但是理想情况下需要动态发现它们。 因此在下一部分中我们将为3个微服务添加“服务发现”和“负载平衡”。 整个源代码可以在这里引用。 翻译自: https://www.javacodegeeks.com/2018/11/spring-microservices-docker-kubernetes-2.html
http://www.pierceye.com/news/488595/

相关文章:

  • 网站的特征包括哪些方面wordpress缓存插件 w3
  • 东莞专业网站营销wordpress新建页面模板
  • 做外贸学习网站智慧团建网页电脑版登录网站
  • 如何免费做一个网站攻略常州网站推广软件
  • 手机网站建站 服务器网站名称收录
  • 网站根 html网站建设 永灿 竞争
  • 网站建设费合同天津网站建设公司
  • 自己怎么做优惠卷网站购物网站建设需求模板下载
  • 上海智能网站建设公司可以做网站头像的图片
  • 怎样给网站做备案网站建设前端工程师岗位职责
  • 福州网站外包网站搭建设计合同
  • 有没有做专利导航运营的网站网站制作代理
  • 即墨网站建设地址邢台织梦模板建站
  • 贵阳网站建设运营网站的扁平化设计理念
  • 商务网站建设与维护(专21春)网站建设入门书籍
  • 免费室内设计素材网站wordpress 前台不显示内容
  • 企业应该找什么样的网站建设公司jz做网站
  • 钦州住房和城乡建设局网站软考考试科目有哪些
  • 查公司的网站有哪些wordpress连接数据库出错
  • 找别人做网站需要什么信息湛江制作公司网站
  • 最简单的静态网站wordpress网络公司主题
  • 做外贸要做什么网站企业服务平台app下载
  • .net做网站开发吗企业网站维护合同
  • 有哪些做网站公司网站做关键词库的作用
  • 安全狗网站白名单指什么申请制作网站
  • 如何做高端网站建设香水推广软文
  • 移动网站建设优势优化设计电子课本下载
  • 做外贸英语要什么网站免费做app网站建设
  • 网站统计系统 怎么做遵义公共资源交易中心官网
  • 做外贸的有哪些网站廊坊网站建设公司哪个好