微服务mysql,redis,elasticsearch, kibana,cassandra,mongodb, kafka
在 Windows 上安装 MySQL
下载 MySQL 安装包:
访问 MySQL 官方网站。
选择适合 Windows 的安装程序,下载并保存。
运行安装程序:
双击下载的安装文件,开始安装。
在安装向导中选择“开发者默认”或“完整安装”。
配置 MySQL:
在配置过程中,选择配置类型(如开发机、服务器等)。
设置 MySQL 的根用户密码,并选择是否创建其他用户。
设置服务:
选择 MySQL 是否作为 Windows 服务运行(一般选择“自动”)。
完成安装:
安装完成后,可以选择运行 MySQL 服务器并打开 MySQL Shell。
验证安装:
打开命令提示符,输入
mysql -u root -p
并输入密码,检查是否能成功登录。
把新建的mysql变量添加到Path路径变量中
在mysql目录下创建一个ini或cnf配置文件
[mysqld]
character-set-server=utf8mb4
bind-address=0.0.0.0
port=3306
default-storage-engine=INNODB
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
[mysqld]
; 设置3306端口
port=3306
; 设置mysql的安装目录
basedir=C:\\gl\\SQL\\mysql-8.0.18-winx64
; 设置mysql数据库的数据的存放目录
datadir=C:\\gl\\SQL\\mysql-data
; 允许最大连接数
max_connections=200
; 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
; 服务端使用的字符集默认为UTF8
character-set-server=utf8
; 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
; 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
; 设置mysql客户端默认字符集
default-character-set=utf8
[client]
; 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
redis一键安装
https://github.com/MicrosoftArchive/redis/releases
mongodb
https://www.mongodb.com/try/download/community
Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:
64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
64 bit JDK 1.8+;
Maven 3.2.x+;
Nacos的运行需要以至少2C 4g 60g*3的机器配置下运行。
下载编译后压缩包方式
您可以从 最新稳定版本 下载 nacos-server-$version.zip
包。
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
cd nacos/bin
Windows
启动命令(standalone代表着单机模式运行,非集群模式):
startup.cmd -m standalone
服务注册&发现和配置管理
服务注册
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
服务发现
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
发布配置
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"
获取配置
curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"
Windows
shutdown.cmd
或者双击shutdown.cmd运行文件。
Windows
下载并安装 JDK:
从 Oracle 官网 或 AdoptOpenJDK 下载最新的 JDK(JDK 8 或更高版本)。
安装时记下安装路径(例如,
C:\Program Files\Java\jdk-1.x.x
)。
设置 JAVA_HOME 变量:
变量名:
JAVA_HOME
变量值: JDK 的安装路径(例如,
C:\Program Files\Java\jdk-1.x.x
)。右键点击桌面或文件资源管理器中的 "此电脑" 或 "计算机"。
点击 "属性"。
点击 "高级系统设置"。
点击 "环境变量"。
在 "系统变量" 部分,点击 "新建",添加:
点击 "确定"。
更新 PATH 变量:
在 "系统变量" 部分找到
Path
变量,选中它后点击 "编辑"。点击 "新建",添加:
%JAVA_HOME%\bin
点击 "确定" 保存更改。
验证:
打开命令提示符,运行:
echo %JAVA_HOME%
和java -version
来验证安装。
Cassandra 安装
https://cassandra.apache.org/_/download.html
https://dlcdn.apache.org/cassandra/5.0.2/apache-cassandra-5.0.2-bin.tar.gz
配置环境变量,新建一个CASSANDRA_HOME变量
%CASSANDRA_HOME%\bin
输入:echo %java_home%和echo %cassandra_home%
在D:\InstallFile\cassandra-3.11.3目录中新建一个data目录
找到cassandra.yaml配置文件
对该文件编辑,然后找到data_file_directories
在D:\InstallFile\cassandra-3.11.3目录中新建一个commitlog目录
在cassandra.yaml配置文件中找到commitlog_directory
在D:\InstallFile\cassandra-3.11.3目录中新建一个saved_caches目录
在cassandra.yaml配置文件中找到saved_caches_directory
然后找到D:\InstallFile\cassandra-3.11.3\bin目录中的cassandra.bat文件
打开DOS窗口,并进入到D:\InstallFile\cassandra-3.11.3\bin目录中
通过用户登录,cassandra的默认用户名和密码为:cassandra
查询keyspaces,输入命令:describe keyspaces;
CREATE KEYSPACE IF NOT EXISTS MyCasDB WITH REPLICATION = {'class': 'SimpleStrategy','replication_factor':1};命令创建一个数据库mycasdb
在mycasdb数据库中创建一个表,首先使用use mycasdb;表示要使用此数据库
向user表中插入输入,使用:
INSERT INTO user (id,user_name) VALUES (1,'xx');
INSERT INTO user (id,user_name) VALUES (2,'xxx');
INSERT INTO user (id,user_name) VALUES (3,'xxxx');
INSERT INTO user (id,user_name) VALUES (4,'xxxxx');
如果需要cqlsh.bat来进行连接,则需要安装python
$ python shutdown_by_port.py
欢迎使用端口查找与进程关闭工具
请输入要查找的端口号 (退出请输入 0): 8080
找到占用端口 8080 的进程 ID: 12345
你确定要优雅地关闭进程 12345 吗?(y/n): y
进程 12345 已成功优雅关闭。
请输入要查找的端口号 (退出请输入 0): 0
程序结束。
cassandra数据库
去官网下载压缩包,版本最好不要用最新的,也不要用太老的版本
分别存放数据库的数据存储,日志存储和缓存
默认文件夹位置
Commitlog 文件夹:
默认路径:
<CASSANDRA_HOME>/commitlog/
作用:Commitlog 用于记录所有写入操作,以保证数据的一致性和可靠性。在数据写入时,所有的操作会先写入 commitlog 中,确保即使发生系统崩溃,数据也不会丢失。Commitlog 存储的是有序的日志数据。
Data 文件夹:
默认路径:
<CASSANDRA_HOME>/data/
作用:Data 文件夹用于存储 Cassandra 中的 SSTable 文件,SSTable 是 Cassandra 存储数据的文件格式。每个表的数据会存储为一组 SSTable 文件,这些文件是持久化存储的核心内容。
data
文件夹中的子文件夹按照每个 keyspace 和表进行组织。
Saved Caches 文件夹:
默认路径:
<CASSANDRA_HOME>/saved_caches/
作用:Saved caches 文件夹用于存储一些缓存数据,主要包括一些压缩文件、Bloom filter 缓存、索引缓存等。保存这些缓存文件可以加速查询性能,减少数据库查询时的磁盘 I/O 操作。
配置文件中定义位置
这些默认文件夹的位置可以在 cassandra.yaml
文件中进行自定义设置。以下是对应的配置项:
Commitlog 目录:
commitlog_directory: /var/lib/cassandra/commitlog
你可以通过修改该配置项来设置 commitlog 文件夹的位置。
Data 目录:
data_file_directories: - /var/lib/cassandra/data
你可以设置数据存储的位置,默认是
/var/lib/cassandra/data
,该位置也可以指定为多个目录。Saved Caches 目录:
saved_caches_directory: /var/lib/cassandra/saved_caches
修改此配置项可以更改 saved caches 文件夹的路径。
假设你的 Cassandra 安装目录是 /opt/cassandra
,则默认情况下:
Commitlog 文件夹会位于
/opt/cassandra/commitlog/
Data 文件夹会位于
/opt/cassandra/data/
Saved caches 文件夹会位于
/opt/cassandra/saved_caches/
错误信息指示了 Cassandra 在启动过程中发生了一个致命错误(EXCEPTION_ACCESS_VIOLATION
),具体是在使用 sigar-amd64-winnt.dll
库时崩溃了。这通常是由于与系统的本地代码库(如 SIGAR 库)或环境配置相关的问题。以下是几种可能的解决方法:
1. 修复 SIGAR 库问题
Cassandra 使用 SIGAR 库来进行系统监控和信息收集(如 CPU、内存、线程等)。EXCEPTION_ACCESS_VIOLATION
错误通常与该库的使用或兼容性有关。
解决方法:
尝试更新或替换 Cassandra 中的 SIGAR 库文件。你可以尝试重新下载 Cassandra,确保文件没有损坏,或直接替换掉
sigar-amd64-winnt.dll
文件。确保你使用的 SIGAR 库与你的操作系统版本兼容。如果你正在使用 64 位的 Windows,确保
sigar-amd64-winnt.dll
文件是适用于你的系统的。
2. 禁用 SIGAR 库
如果你不需要 Cassandra 的系统监控功能,可以尝试禁用 SIGAR 库。你可以通过修改 cassandra-env.sh
或 cassandra-env.bat
文件来禁用 SIGAR。
解决方法:
打开
apache-cassandra-3.11.4\conf\cassandra-env.sh
(Linux/Mac)或apache-cassandra-3.11.4\conf\cassandra-env.bat
(Windows)。注释掉或删除与 SIGAR 相关的配置,特别是以下行:
-Djava.library.path=<path-to-sigar-bin>
然后重新启动 Cassandra。
内存配置
另一个警告提示你的 JVM 没有配置在发生 OutOfMemoryError 时自动停止,这可能会导致数据损坏。虽然这个问题与 SIGAR 无关,但它是一个需要关注的警告。
解决方法:
在
cassandra-env.sh
或cassandra-env.bat
中,增加以下 JVM 参数:-XX:+ExitOnOutOfMemoryError
这样,当发生内存溢出错误时,JVM 将自动停止。
检查 JMX 配置
另一个警告是 JMX(Java Management Extensions)未启用远程连接。这通常不会导致启动失败,但如果你打算远程管理 Cassandra,建议启用 JMX。
解决方法:
在
cassandra-env.sh
或cassandra-env.bat
文件中,查找并启用 JMX 配置,类似于:-Dcassandra.jmx.remote.port=7199 -Dcassandra.jmx.remote.authenticate=false -Dcassandra.jmx.remote.ssl=false
查看 Java 错误报告
错误信息中提到生成了一个错误报告文件(hs_err_pid24616.log
),这个文件包含了更详细的崩溃日志。你可以打开该文件来获取更多线索,特别是查看崩溃发生的堆栈信息。
#集群名称
cluster_name: 'cassandra_Cluster_name'
hints_directory: /data1/cassandra/hints
#数据目录
data_file_directories:
- /data /cassandra/data
commitlog_directory: /data /cassandra/commitlog
cdc_raw_directory: /data /cassandra/cdc_raw
saved_caches_directory: /data /cassandra/saved_caches
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: "ip1,ip2,ip3"
#监听地址
listen_address: ip
data_file_directories:
- D:/cassandra/data
commitlog_directory: D:/cassandra/commitlog
cdc_raw_directory: D:/cassandra/cdc_raw
saved_caches_directory: D:/cassandra/saved_caches
listen_address
是 Cassandra 用来与其他节点通信的网络接口地址。在本地环境中,可以设置为 127.0.0.1
或者你机器的局域网 IP 地址。
补充设置:RPC 地址
除了 listen_address
,还可以设置 rpc_address
,它决定了客户端(如应用程序)如何连接到 Cassandra:
rpc_address: 0.0.0.0
这将允许 Cassandra 接受来自任何 IP 地址的客户端请求。在生产环境中,可能需要设置成特定的 IP 地址。
确保:
你的 Java 环境正确设置,并且 Java 版本符合 Cassandra 的要求。
本地端口(如 9042)未被其他程序占用。
数据目录、日志目录等路径正确且有权限读写。
https://cassandra.apache.org/_/download.htmlhttps://www.apache.org/dyn/closer.lua/cassandra/3.11.11/apache-cassandra-3.11.11-bin.tar.gz
D:\apache-cassandra-3.11.11-bin\apache-cassandra-3.11.11\bin
修改cassandra.[yaml]配置
data_file_directories:
- D:\apache-cassandra-3.11.11-bin\apache-cassandra-3.11.11\data
commitlog_directory: D:\apache-cassandra-3.11.11-bin\apache-cassandra-3.11.11\commitlog
saved_caches_directory: D:\apache-cassandra-3.11.11-bin\apache-cassandra-3.11.11\saved_caches
http://www.apache.org/dyn/closer.lua/cassandra/3.11.1/apache-cassandra-3.11.1-bin.tar.gz
配置 Cassandra
在 Cassandra 4.0+ 中,配置文件主要位于 conf
目录下。以下是常见的配置文件:
cassandra.yaml:Cassandra 的主要配置文件,包含集群配置、存储路径等。
cassandra-env.sh:环境变量配置文件(在 Windows 上没有该文件,而是
cassandra-env.ps1
)。logback.xml:Cassandra 的日志配置文件。
Cassandra 默认使用以下端口:
7000:用于节点间的通信。
7199:JMX 监控端口。
9042:CQL (Cassandra Query Language) 端口,用于访问 Cassandra 数据库。
9160:Thrift 端口(虽然 Cassandra 4.x 不再默认使用 Thrift)。
[JMX is not enabled to receive remote connection]
elasticsearch 安装 - kibana
进入ElasticSearch 官网,根据操作系统点击下载ElasticSearch(如果操作系统非主流,请查阅ElasticSearch的操作系统支持矩阵)
查看节点信息。单节点默认监听9200端口,所以直接在浏览器中输入'''localhost:9200'''即可查看节点信息 开发者可以自定义设置集群名字(默认elasticsearch)和节点名字
自定义设置节点和集群名字。进入config文件夹,打开 elasticsearch.yml文件
在bin目录下,进入cmd,直接执行./elasticsearch
# 集群名字
culster.name: javaboy-es
# 节点名字
node.name: master
Kibana安装
Kibana 是一个 Elastic 公司推出的一个针对 Elasticsearch 的分析以及数据可视化平台,可以搜索、查看存放在 Elasticsearch 中的数据。 安装步骤如下:
解压文件
配置 es 的地址信息(如果 Elasticsearch 是默认设置,则可以不用配置,其配置文件在 kibana 的 config/kibana.yml)
在kibana 的bin目录下 执行命令
./kibana
文件启动
在ElasticSearch中有三个配置文件,分别为(默认位置 config目录下)elasticsearch.yml、jvm.options和log4j2.properties。
elasticsearch.yml:配置ElasticSearch
jvm.options:配置ElasticSearch依赖的JVM信息
log4j2.properties:配置ElasticSearch日志记录中的各个属性
配置文件格式信息
ElasticSearch的配置文件为yaml。
path: data:/var/lib/es logs:/var/log/es
单条方式
path.data:/var/lib/es path.logs:/var/log/es
引用环境变量方式
node.name:${HOSTNAME} network.host:${ES_NETWORK_HOST}
一般情况下,Elasticsearch中很少修改JVM选项,最有可能更改配置堆的大小; 默认情况下,ElasticSearch配置JVM使用最小堆空间和最大堆空间大小均为1G
在ElasticSearch中,我们通过配置jvm.options文件中的xms(最小堆大小)和xmx(最大堆大小)两个参数来指定整个堆大小,一般情况下,两 者参数设置应为相等。
jvm.options配置文件说明
以 “ # ”开头的行被视为注释并忽略
以“**-”开头的行被视为独立于本机JVM版本号的JVM**选项
-Xmx2g
以“数字: ”开头的行被视为一个JVM选项,该选项仅在本机JVM的版本号相互匹配时适用
8:-Xmx2g
以“数字-”开头的行被视为一个JVM选项,该选项仅在本机JVM的版本号大于或等于该数字版本号时才适用
8-:-Xmx2g
以“数字-数字”开头的行被视为一个JVM选项,该选项仅在本机JVM版本号在这两个数字版本号范围内时适用
8-9:-Xmx2g
空白行忽略即可,其他都被拒绝解析
ElasticSearch中相关的三个公开属性信息:
$sys:es.logs.base_path:日志文件目录地址
$sys:es.logs.cluster_name:集群名称(默认配置中,用作日志文件名的前缀)
$sys:es.logs.node_name:节点名称(如果显式地设置了节点名称)
# 配置RollingFile的appender属性
appender.rolling.type = RollingFile
appender.rolling.name = rolling
# 日志信息将输出到 ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}_server.json中
appender.rolling.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}_server.json
# 使用json文件格式输出
appender.rolling.layout.type = ESJsonLayout
# type_name是填充ESJsonLayout的类型字段的标志,该字段可以让我们在解析不同类型的日志时更加简单
appender.rolling.layout.type_name = server
# 日志将会滚动输出到${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%d{yyyy-MM-dd}-
%i.json.gz中,日志文件会被压缩,且呈i递增状态
appender.rolling.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-
%d{yyyy-MM-dd}-%i.json.gz
appender.rolling.policies.type = Policies
# 使用基于时间戳的新增日志滚动策略
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
# 按天滚动新增日志
appender.rolling.policies.time.interval = 1
# 在日期时间上对齐标准,而不是按每24小时来新增一次滚动日志文件
appender.rolling.policies.time.modulate = true
# 按日志文件大小的策略来滚动新增日志文件
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
# 每生成128MB的日志文件,就滚动新增一次日志
appender.rolling.policies.size.size = 128MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.fileIndex = nomax
# 每次新增滚动日志时执行删除日志文件动作
appender.rolling.strategy.action.type = Delete
appender.rolling.strategy.action.basepath = ${sys:es.logs.base_path}
# 仅当文件匹配时才删除日志文件
appender.rolling.strategy.action.condition.type = IfFileName
# 该配置仅用于删除日志文件
appender.rolling.strategy.action.condition.glob = ${sys:es.logs.cluster_name}-*
# 只有当日志目录下积累了较多日志时才删除
appender.rolling.strategy.action.condition.nested_condition.type = IfAccumulatedFileSize
# 压缩日志的条件是日志文件大小达到2G
appender.rolling.strategy.action.condition.nested_condition.exceeds = 2GB
elasticsearch-service.bat后面还可以执行这些命令
install: 安装Elasticsearch服务
remove: 删除已安装的Elasticsearch服务(如果启动则停止服务)
start: 启动Elasticsearch服务(如果已安装)
stop: 停止服务(如果启动)
manager:启动GUI来管理已安装的服务
ElasticSearch安装为Windows服务
1.elasticsearch的bin目录下有一个elasticsearch-service.bat
2.cmd 进入bin目录下执行: elasticsearch-service.bat install
为了修改 elastic
用户的密码,你可以使用 Elasticsearch 自带的 elasticsearch-setup-passwords
工具,执行以下命令来修改密码:
./bin/elasticsearch-setup-passwords interactive
如果你不需要 HTTPS,可以在配置中禁用:
xpack.security.http.ssl.enabled: false
要将 Elasticsearch 配置从 HTTPS 访问切换为 HTTP 访问,请按以下步骤修改配置文件 elasticsearch.yml
:
1. 修改 elasticsearch.yml
配置文件
找到以下 HTTPS 配置并禁用或删除这些设置。
配置文件调整
在 elasticsearch.yml
中,将以下 HTTPS 配置禁用:
# Enable security features
xpack.security.enabled: false
# Disable HTTPS for HTTP API client connections
xpack.security.http.ssl.enabled: false
# Disable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl.enabled: false
详细说明:
**
xpack.security.enabled: false
**:禁用安全功能,不再要求身份验证(如用户名和密码)。**
xpack.security.http.ssl.enabled: false
**:禁用 HTTP API 的 SSL(HTTPS),使 Elasticsearch 通过 HTTP 访问。**
xpack.security.transport.ssl.enabled: false
**:禁用节点间通信的加密,所有节点将通过非加密的 HTTP 进行通信。
Kibana安装
Kibana 是一个 Elastic 公司推出的一个针对 Elasticsearch 的分析以及数据可视化平台,可以搜索、查看存放在 Elasticsearch 中的数据。 安装步骤如下:
下载 Kibana: Kibana 网站
解压文件
配置 es 的地址信息(如果 Elasticsearch 是默认设置,则可以不用配置,其配置文件在 kibana 的 config/kibana.yml)
在kibana 的bin目录下 执行命令
./kibana
文件启动浏览器
localhost:5601
等待加载完毕,
Kibana 是一个 web 应用,可以通过5601端口访问。只需要在浏览器中指定 Kibana 运行的机器,然后指定端口号即可。例如, localhost:5601
或者 http://127.0.0.1:5601
。
检查 Kibana 状态
您可以通过 localhost:5601/status
来访问 Kibana 的服务器状态页,状态页展示了服务器资源使用情况和已安装插件列表。
加群联系作者vx:xiaoda0423
仓库地址:https://github.com/webVueBlog/JavaGuideInterview