springboot集成springcloud

本例场景:
  springboot集成springcloud
  本例demo源码: https://github.com/zhangbeizhen/springboot-springcloud
1.本例分为3部分:
  1>.服务提供方provider
  2>.服务消费方consumer
  3>.注册中心Eureka
2.注册中心Eureka
  1>.在pom.xml引入依赖

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

  2>.在application.yml配置Eureka信息

server:
  port: 8761
eureka:
  instance:
    hostname: eureka-server  # eureka实例的主机名
  client:
    register-with-eureka: false #不把自己注册到eureka上
    fetch-registry: false       #不从eureka上来获取服务的注册信息
    service-url:
      defaultZone: http://localhost:8761/eureka/

   3>.在启动类加注解@EnableEurekaServer,使能Eureka服务器

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

 4>.在浏览器访问Eureka
  http://127.0.0.1:8761
3.服务提供方provider
  1>.在pom.xml引入依赖

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

  2>.在application.yml配置注册信息

server:
  port: 8081
spring:
  application:
    name: provider
#配置eureka信息
eureka:
  instance:
    prefer-ip-address: true  # 注册服务的时候使用服务的ip地址
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

  3>.EmployeeService类

@Service
public class EmployeeService {
  public String getEmpInfo() {
   String info = "这是一个非常棒的同事.";
   return info;
  }
}

  4>.EmployeeController类

@RestController
public class EmployeeController {
  @Autowired
  private EmployeeService employeeService;
  @GetMapping("/emp")
  public String getEmpInfo(){
    return employeeService.getEmpInfo();
  }
}	

4.服务消费方consumer
  1>.在pom.xml引入依赖

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

  2>.在application.yml配置注册信息

spring:
  application:
    name: consumer
server:
  port: 8091
#配置eureka信息
eureka:
  instance:
    prefer-ip-address: true  # 注册服务的时候使用服务的ip地址
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

  3>.RestConfig配置类

@Configuration
public class RestConfig {
  @LoadBalanced /**使用负载均衡机制*/
  @Bean
  public RestTemplate restTemplate(){
    return new RestTemplate();
  }
}

  4>.ManageController类

@RestController
public class ManageController {
  @Autowired
  RestTemplate restTemplate;
  @GetMapping("/query")
  public String getEmpInfo(){
    String info = restTemplate.getForObject("http://PROVIDER/emp", String.class);
    return "消费者服务获取的信息: "+info;
  }
}

  5>.在启动类加@EnableDiscoveryClient注解,开启发现服务功能

@EnableDiscoveryClient //开启发现服务功能
@SpringBootApplication
public class ConsumerApplication {
  public static void main(String[] args) {
    SpringApplication.run(ConsumerApplication.class, args);
  }
}

 6>.测试,Postman截图
5.三个服务都启动后,在浏览器访问Eureka
  http://127.0.0.1:8761
  截图:
以上,TKS.  

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Cloud Stream是一个框架,可以轻松地构建消息驱动的微服务应用程序。它提供了一组统一的API,用于在不同的消息中间件之间发送和接收消息,其中包括RocketMQ。 以下是将Spring Boot集成Spring Cloud Stream RocketMQ的步骤: 1. 添加依赖 在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-stream-binder-rocketmq</artifactId> <version>3.1.0</version> </dependency> ``` 2. 配置RocketMQ连接信息 在application.properties文件中添加以下配置: ```properties spring.cloud.stream.bindings.<channelName>.destination=<topicName> spring.cloud.stream.bindings.<channelName>.binder=rocketmq spring.cloud.stream.rocketmq.binder.name-server=<nameServerAddress> spring.cloud.stream.rocketmq.binder.access-key=<accessKey> spring.cloud.stream.rocketmq.binder.secret-key=<secretKey> spring.cloud.stream.rocketmq.binder.group=<groupName> ``` 其中,`<channelName>`是通道名称,`<topicName>`是RocketMQ的主题名称,`<nameServerAddress>`是RocketMQ的NameServer地址,`<accessKey>`和`<secretKey>`是RocketMQ的访问密钥,`<groupName>`是RocketMQ的消费者组名称。 3. 创建消息生产者 使用`@EnableBinding`注解启用绑定,并使用`@Output`注解定义输出通道。例如: ```java @EnableBinding(Source.class) public class MyProducer { @Autowired private Source source; public void sendMessage(String message) { source.output().send(MessageBuilder.withPayload(message).build()); } } ``` 4. 创建消息消费者 使用`@EnableBinding`注解启用绑定,并使用`@Input`注解定义输入通道。例如: ```java @EnableBinding(Sink.class) public class MyConsumer { @StreamListener(Sink.INPUT) public void receiveMessage(String message) { System.out.println("Received message: " + message); } } ``` 5. 发送和接收消息 使用`MyProducer`发送消息,使用`MyConsumer`接收消息。 ```java @Autowired private MyProducer producer; @Autowired private MyConsumer consumer; public void sendMessage(String message) { producer.sendMessage(message); } public void receiveMessage() { consumer.receiveMessage(); } ``` 这就是将Spring Boot集成Spring Cloud Stream RocketMQ的过程,希望对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值