- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Govern Service 基于 Redis 的服务治理平台安装过程详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
govern service 基于 redis 的服务治理平台(服务注册/发现 & 配置中心) 。
govern service 是一个轻量级、低成本的服务注册、服务发现、 配置服务 sdk,通过使用现有基础设施中的 redis (相信你已经部署了redis),不用给运维部署带来额外的成本与负担。 借助于 redis 的高性能, govern service 提供了超高tps&qps (10w+/s jmh 基准测试)。govern service 结合本地进程缓存策略 + redis pubsub,实现实时进程缓存刷新,兼具无与伦比的qps性能、进程缓存与 redis 的实时一致性.
安装 。
gradle 。
kotlin dsl 。
1
2
3
|
val governversion = "0.9.13";
implementation("me.ahoo.govern:spring-cloud-starter-config:${governversion}")
implementation("me.ahoo.govern:spring-cloud-starter-discovery:${governversion}")
|
maven 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/pom/4.0.0"
xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelversion>4.0.0</modelversion>
<artifactid>demo</artifactid>
<properties>
<govern.version>0.9.13</govern.version>
</properties>
<dependencies>
<dependency>
<groupid>me.ahoo.govern</groupid>
<artifactid>spring-cloud-starter-config</artifactid>
<version>${govern.version}</version>
</dependency>
<dependency>
<groupid>me.ahoo.govern</groupid>
<artifactid>spring-cloud-starter-discovery</artifactid>
<version>${govern.version}</version>
</dependency>
</dependencies>
</project>
|
bootstrap.yml (spring-cloud-config) 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
spring:
application:
name: ${service.name:govern-rest-api}
cloud:
govern:
namespace: ${govern.namespace:govern-{system}}
config:
config-id: ${spring.application.name}.yml
redis:
mode: ${govern.mode:standalone}
url: ${govern.redis.uri:redis://localhost:6379}
logging:
file:
name: logs/${spring.application.name}.log
|
rest-api server (optional) 。
安装 rest-api server 。
方式一:下载可执行文件 。
下载 rest-api-server 。
解压 rest-api-0.9.13.tar 。
1
2
3
|
cd
rest-api-0.9.13
# 工作目录: rest-api-0.9.13
bin
/rest-api
--server.port=8080 --govern.redis.uri=redis:
//localhost
:6379
|
方式二:docker run 。
1
2
|
docker pull ahoowang
/govern-service
:0.9.13
docker run --name govern-service -d -p 8080:8080 --link redis -e govern_redis_uri=redis:
//redis
:6379 ahoowang
/govern-service
:0.9.13
|
macbook pro (m1) 。
请使用 ahoowang/govern-service:0.9.13-armv7 。
1
2
|
docker pull ahoowang
/govern-service
:0.9.13-armv7
docker run --name govern-service -d -p 8080:8080 --link redis -e govern_redis_uri=redis:
//redis
:6379 ahoowang
/govern-service
:0.9.13-armv7
|
http://localhost:8080/dashboard 。
dashboard 。
命名空间管理 。
配置管理 。
服务管理 。
rest-api 。
http://localhost:8080/swagger-ui/index.html 。
namespace 。
/v1/namespaces get /v1/namespaces/{namespace} put get /v1/namespaces/current get /v1/namespaces/current/{namespace} put 。
config 。
/v1/namespaces/{namespace}/configs get /v1/namespaces/{namespace}/configs/{configid} get put delete /v1/namespaces/{namespace}/configs/{configid}/versions get /v1/namespaces/{namespace}/configs/{configid}/versions/{version} get /v1/namespaces/{namespace}/configs/{configid}/to/{targetversion} put 。
service 。
/v1/namespaces/{namespace}/services/ get /v1/namespaces/{namespace}/services/{serviceid}/instances get put /v1/namespaces/{namespace}/services/{serviceid}/instances/{instanceid} delete /v1/namespaces/{namespace}/services/{serviceid}/instances/{instanceid}/metadata put /v1/namespaces/{namespace}/services/{serviceid}/lb get 。
jmh-benchmark 。
configservice 。
1
|
gradle config:jmh
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# jmh version: 1.29
# vm version: jdk 11.0.11, openjdk 64-bit server vm, 11.0.11+9-lts
# vm invoker: /library/java/javavirtualmachines/zulu-11.jdk/contents/home/bin/java
# vm options: -dfile.encoding=utf-8 -djava.io.tmpdir=/users/ahoo/govern-service/config/build/tmp/jmh -duser.country=cn -duser.language=zh -duser.variant
# blackhole mode: full + dont-inline hint
# warmup: 1 iterations, 10 s each
# measurement: 1 iterations, 10 s each
# timeout: 10 min per iteration
# threads: 50 threads, will synchronize iterations
# benchmark mode: throughput, ops/time
benchmark mode cnt score error units
consistencyredisconfigservicebenchmark.getconfig thrpt 265321650.148 ops/s
redisconfigservicebenchmark.getconfig thrpt 106991.476 ops/s
redisconfigservicebenchmark.setconfig thrpt 103659.132 ops/s
|
servicediscovery 。
1
|
gradle discovery:jmh
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# jmh version: 1.29
# vm version: jdk 11.0.11, openjdk 64-bit server vm, 11.0.11+9-lts
# vm invoker: /library/java/javavirtualmachines/zulu-11.jdk/contents/home/bin/java
# vm options: -dfile.encoding=utf-8 -djava.io.tmpdir=/users/ahoo/govern-service/discovery/build/tmp/jmh -duser.country=cn -duser.language=zh -duser.variant
# blackhole mode: full + dont-inline hint
# warmup: 1 iterations, 10 s each
# measurement: 1 iterations, 10 s each
# timeout: 10 min per iteration
# threads: 50 threads, will synchronize iterations
# benchmark mode: throughput, ops/time
benchmark mode cnt score error
units
consistencyredisservicediscoverybenchmark.getinstances thrpt 76894658.867 ops
/s
consistencyredisservicediscoverybenchmark.getservices thrpt 466036317.472 ops
/s
redisservicediscoverybenchmark.getinstances thrpt 107778.244 ops
/s
redisservicediscoverybenchmark.getservices thrpt 106920.412 ops
/s
redisserviceregistrybenchmark.deregister thrpt 114094.513 ops
/s
redisserviceregistrybenchmark.register thrpt 109085.694 ops
/s
redisserviceregistrybenchmark.renew thrpt 127003.104 ops
/s
|
作者:ahoo wang (阿虎) 。
github: https://github.com/ahoo-wang/ 。
smartsql(高性能、高生产力,超轻量级的orm!): https://github.com/dotnetcore/smartsql 。
smartcode(不只是代码生成器!): https://github.com/dotnetcore/smartcode 。
govern service 基于 redis 的服务治理平台(服务注册/发现 & 配置中心): https://github.com/ahoo-wang/govern-service 。
govern eventbus 历经多年生产环境验证的事件驱动架构框架: https://github.com/ahoo-wang/govern-eventbus 。
以上就是govern service 基于 redis 的服务治理平台的详细内容,更多关于redis 服务治理的资料请关注我其它相关文章! 。
原文链接:https://www.cnblogs.com/Ahoo-Wang/p/govern-service.html 。
最后此篇关于Govern Service 基于 Redis 的服务治理平台安装过程详解的文章就讲到这里了,如果你想了解更多关于Govern Service 基于 Redis 的服务治理平台安装过程详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有一个关于 Redis Pubsub 的练习,如下所示: 如果发布者发布消息但订阅者没有收到服务器崩溃。订阅者如何在重启服务器时收到该消息? 请帮帮我,谢谢! 最佳答案 在这种情况下,消息将永远消失
我们正在使用 Service Stack 的 RedisClient 的 BlockingDequeue 来保存一些数据,直到它可以被处理。调用代码看起来像 using (var client =
我有一个 Redis 服务器和多个 Redis 客户端。每个 Redis 客户端都是一个 WebSocket+HTTP 服务器,其中包括管理 WebSocket 连接。这些 WebSocket+HTT
我有多个 Redis 实例。我使用不同的端口创建了一个集群。现在我想将数据从预先存在的 redis 实例传输到集群。我知道如何将数据从一个实例传输到集群,但是当实例多于一个时,我无法做到这一点。 最佳
配置:三个redis集群分区,跨三组一主一从。当 Master 宕机时,Lettuce 会立即检测到中断并开始重试。但是,Lettuce 没有检测到关联的 slave 已经将自己提升为 master
我想根据从指定集合中检索这些键来删除 Redis 键(及其数据集),例如: HMSET id:1 password 123 category milk HMSET id:2 password 456
我正在编写一个机器人(其中包含要禁用的命令列表),用于监视 Redis。它通过执行禁用命令,例如 (rename-command ZADD "")当我重新启动我的机器人时,如果要禁用的命令列表发生变化
我的任务是为大量听众使用发布/订阅。这是来自 docs 的订阅的简化示例: r = redis.StrictRedis(...) p = r.pubsub() p.subscribe('my-firs
我一直在阅读有关使用 Redis 哨兵进行故障转移的内容。我打算有1个master+1个slave,如果master宕机超过1分钟,就把slave变成master。我知道这在 Sentinel 中是
与仅使用常规 Redis 和创建分片相比,使用 Redis 集群有哪些优势? 在我看来,Redis Cluster 更注重数据安全(让主从架构解决故障)。 最佳答案 我认为当您需要在不丢失任何数据的情
由于 Redis 以被动和主动方式使 key 过期, 有没有办法得到一个 key ,即使它的过期时间已过 (但 在 Redis 中仍然存在 )? 最佳答案 DEBUG OBJECT myKey 将返回
我想用redis lua来实现monitor命令,而不是redis-cli monitor。但我不知道怎么办。 redis.call('monitor') 不起作用。 最佳答案 您不能从 Redis
我读过 https://github.com/redisson/redisson 我发现有几个 Redis 复制设置(包括对 AWS ElastiCache 和 Azure Redis 缓存的支持)
Microsoft.AspNet.SignalR.Redis 和 StackExchange.Redis.Extensions.Core 在同一个项目中使用。前者需要StackExchange.Red
1. 认识 Redis Redis(Remote Dictionary Server)远程词典服务器,是一个基于内存的键值对型 NoSQL 数据库。 特征: 键值(key-value)型,value
1. Redis 数据结构介绍 Redis 是一个 key-value 的数据库,key 一般是 String 类型,但 value 类型多种多样,下面就举了几个例子: value 类型 示例 Str
1. 什么是缓存 缓存(Cache) 就是数据交换的缓冲区,是存贮数据的临时地方,一般读写性能较高。 缓存的作用: 降低后端负载 提高读写效率,降低响应时间 缓存的成本: 数据一致性成本 代码维护成本
我有一份记录 list 。对于我的每条记录,我都需要进行一些繁重的计算,因为我要在Redis中创建反向索引。为了达到到达记录,需要在管道中执行多个redis命令(sadd为100 s + set为1
我有一个三节点Redis和3节点哨兵,一切正常,所有主服务器和从属服务器都经过验证,并且哨兵配置文件已与所有Redis和哨兵节点一起更新,但是问题是当Redis主服务器关闭并且哨兵希望选举失败者时再次
我正在尝试计算Redis中存储的消息之间的响应时间。但是我不知道该怎么做。 首先,我必须像这样存储chat_messages的时间流 ZADD conversation:CONVERSATION_ID
我是一名优秀的程序员,十分优秀!