微服务实战03-注册数据服务

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: EurekaServer ,它扮演的角色是注册中心,用于注册各种微服务,以便于其他微服务找到和访问。有了EurekaServer,还需要一些微服务,注册到EurekaServer上去。这一节,我们来写一个注册微服务。为了简单起见,我们不用数据库,用java来模拟即可。

1.订单模块

创建一个订单模块

37.png


模块名是oms,是Order Manage Service的缩写,为什么简写呢,因为我要装杯。

38.png



pom.xml 添加依赖:

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>     
    </dependencies>

spring-cloud-starter-netflix-eureka-client 表示这是个 eureka 客户端。


spring-boot-starter-web 表示这是个web服务,会提供控制层,因为我们要提供访问接口,所以要加web。


Order实体类


这是订单的实体类,为了方便起见,我们要加上lombok。


在parent工程的pom里面加上lombok


39.png

依赖配置

<!-- lombok -->
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <scope>compile</scope>
</dependency>

dto文件在这

40.png


代码:

@Data
public class Order {
   private Integer orderId;   //订单号
   private String productName;  //货品名称
   private Integer quantity;  //数量
}

eclipse还需要安装lombok插件才行,光有jar包还不够,如果搞不定就老老实实生成get/set方法吧,这个没关系。

Order服务类

41.png


public interface OrderService {
   public List<Order> queryOrders();
}

再来个实现类

42.png

@Service
public class OrderServiceImpl implements OrderService {
 @Override
 public List<Order> queryOrders() {
  List<Order> list = new ArrayList<>();
  Order o1 = new Order();
  o1.setOrderId(1);
  o1.setProductName("GBA");
  o1.setQuantity(10);
  Order o2 = new Order();
  o2.setOrderId(2);
  o2.setProductName("NDS");
  o2.setQuantity(10);
  list.add(o1);
  list.add(o2);
  return list;
 }
}

Order控制层

@RestController
public class OrderController {
    @Autowired
    private OrderService orderService;
    @Value("${server.port}")
   String port;
    @GetMapping("/order/list")
    public List<Order> queryOrders(){
      System.out.println("------------" + port);
      return orderService.queryOrders();
    }
}

引入端口,方便观察后面集群访问。

启动类

43.png

代码:

@SpringBootApplication
@EnableEurekaClient
public class Application {
 public static void main(String[] args) {
  SpringApplication.run(Application.class, args);
 }
}

application.yml配置

spring:
  application:
    name: order-data-service
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8081/eureka/

order-data-service代表这是一个订单数据服务,给其他系统提供订单数据用的。 defaultZone用来设置注册中心的地址,跟eureka-server中的defaultZone是一样的。

现在我们启动两个数据服务。

44.png

选择oms,启动类也要选对

45.png


手动填写启动端口

46.png


注意,server.port左边有个--,一定要加。

启动完毕后,再去看eureka服务:

47.png


就显示这个服务了。

再用同样的办法,在8083端口起一个订单服务。

48.png



得到这样的变化。


访问者两个地址:http://localhost:8082/order/list和http://localhost:8083/order/list,观察后台的日志可以看到都能正常访问的。但是这种方式是通过 http 协议 访问微服务本身,和注册中心没有关系,也观察不到集群的效果,接下来我们就会讲如何用微服务,访问另一个微服务。


相关文章
|
16小时前
|
JSON 安全 Java
微服务Token鉴权设计:概念与实战
【4月更文挑战第29天】在微服务架构中,鉴权是确保服务安全的重要环节。由于微服务往往由多个独立的服务组成,这些服务之间的通信需要一种高效、安全的鉴权机制。Token鉴权作为一种常用的鉴权方式,为微服务架构提供了简洁而有效的解决方案。
21 0
|
16小时前
|
SpringCloudAlibaba Java Nacos
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
|
16小时前
|
Cloud Native Dubbo 应用服务中间件
【Dubbo3高级特性】「微服务云原生架构」带你从零基础认识搭建公司内部服务用户中心体系(实战指南-序章)
【Dubbo3高级特性】「微服务云原生架构」带你从零基础认识搭建公司内部服务用户中心体系(实战指南-序章)
65 0
|
16小时前
|
Java fastjson 数据安全/隐私保护
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
49 0
|
16小时前
|
Arthas 监控 Java
金石原创 |【JVM实战系列】「监控调优体系」实战开发arthas-spring-boot-starter监控你的微服务是否健康!
金石原创 |【JVM实战系列】「监控调优体系」实战开发arthas-spring-boot-starter监控你的微服务是否健康!
20 0
|
16小时前
|
Kubernetes Nacos 微服务
nacos常见问题之v2.2.3 k8s 微服务注册nacos强制删除 pod不消失如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
30 1
nacos常见问题之v2.2.3 k8s 微服务注册nacos强制删除 pod不消失如何解决
|
16小时前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(三)Eureka服务注册中心
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(三)Eureka服务注册中心
49 1
|
16小时前
|
开发框架 移动开发 JavaScript
SpringCloud微服务实战——搭建企业级开发框架(四十六):【移动开发】整合uni-app搭建移动端快速开发框架-环境搭建
正如优秀的软件设计一样,uni-app把一些移动端常用的功能做成了独立的服务或者插件,我们在使用的时候只需要选择使用即可。但是在使用这些服务或者插件时一定要区分其提供的各种服务和插件的使用场景,例如其提供的【uni-starter快速开发项目模版】几乎集成了移动端所需的所有基础功能,使用非常方便,但是其许可协议只允许对接其uniCloud的JS开发服务端,不允许对接自己的php、java等其他后台系统。
160 2
|
16小时前
|
微服务
三个微服务注册中心eureka、consul、zookeeper之间的异同点以及CAP理论图
三个微服务注册中心eureka、consul、zookeeper之间的异同点以及CAP理论图
31 0
|
16小时前
|
敏捷开发 缓存 负载均衡
微服务架构下的服务发现与注册机制
【2月更文挑战第21天】 随着现代应用向微服务架构转型,服务的数量和复杂性不断增加。在这种环境下,有效的服务发现与注册机制成为确保系统可伸缩性和高可用性的关键。本文深入探讨了微服务架构中服务发现的基本原则、常用模式及其实现技术,同时分析了服务注册的流程和优势。文章旨在为开发者提供一个清晰的指引,帮助他们在构建分布式系统时做出明智的设计选择。