使用Nginx1.25.4版本做负载均衡、搭建Nacos2.3.0服务集群

news2024/11/19 7:47:25

关于使用版本问题上,其实小白更喜欢使用新的版本,因为新的版本功能更多,肯定优化方面不言而喻,懂得都懂,但是新的版本,肯定使用起来更加的速度,性能,也是不言而喻的啊,那是嘎嘎一嘎斯,稳定性较差,坑更多,但是我认为跳坑,更有意思。其实小白不是自虐啊!一方面小白喜欢从坑里爬出来的那份欣喜,最重要的一方面就是可以分享一下,给更多跳坑的人一点点的建议,俗话说我不如地狱谁入地狱!!

好了,收,废话不多说了

前期准备下载 JDK、Maven、Nacos、Nginx

小白使用的版本是JDK17.0.Maven官网:https://maven.apache.org/ 10、Maven3.9.6、Nacos2.3.0、Nginx1.25.4如果专业的话,查看一下版本要求,如果使用SpringalibabbaCloud,Nacos最好不要选择最新版,目前为止SpringalibabaCloud-2023.0.0.0-RC1,最高支持的就是Nacos2.3.0版本。

Nacos

下载 JDK Maven Nacos

Nacos 

Nacos官网下载: https://github.com/alibaba/nacos

点击Releases下的Nacos的版本进行下载,小白使用的是2.3.0 在这里插入图片描述2、找到Assets 如果单纯使用不研究源码直接选择(*.tar.gz)点击 进行下载(注意国外网,不是很好下载,小白祝大家自求多福吧!)自己想想办法 在这里插入图片描述

3、关注自己的jdk版本是否符合Nacos2.3.1这个版本最低要求JDK是1.8+的

JDK

oracle官网Oracle | Cloud Applications and Cloud Platform 下载JDK 注意(.tar.gz)版本的

2、进入官网选择product-->java 在这里插入图片描述 3、Dowload 在这里插入图片描述 4、选择版本进行下载 在这里插入图片描述

Maven

Maven官网:Maven – Welcome to Apache Mavenicon-default.png?t=N7T8https://maven.apache.org/

安装 JDK、Maven、Nacos

JDK

小白使用的是SecureCRT工具将包上传到linux上

使用FTP(快捷键:ALT+P)上传JDK、Nacos Server的包上传至虚拟机上

上传JDK

将jdk移动暗转目录
mv jdk-21_linux-x64_bin.tar.gz /usr/local/etc

将jdk安装包解压
tar -zxvf jdk-21_linux-x64_bin.tar.gz

解压完成

删除jdk包
rm -i jdk-21_linux-x64_bin.tar.gz
删除自带的JDK
查看自带jdk
rpm -qa | grep java

删除java
    yum -y remove java-1.8.0-openjdk-headless-1.8.0.362.b09-4.el9.x86_64
    yum -y remove javapackages-filesystem-6.0.0-4.el9.noarch
    yum -y remove tzdata-java-2023c-1.el9.noarch

配置环境变量
cd /
vim /etc/profile
找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

点击英文字母 i 进入写入模式

编写java环境变量

# setting java evironment then reloading source etc/profile
JAVA_HOME=/usr/local/etc/jdk-21.0.2
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH

ESC + : +wq :写入并退出

重新加载 profile 文件

source /etc/profile

查看java版本(有时候会显示 Command not found)吓一跳吧!哈哈哈
java -version

进入jdk安装目录的bin目录首次运行
cd /usr/local/etc/jdk-21.0.2/bin
./java -version

诶!如果在不对了就检查一次 profile吧! 安全起见Linux上JDK版本要与 主机上的JDK的版本保持一致,避免不必要的麻烦

Maven

将Apache-Maven移动至安装目录

解压Maven
tar -zxvf apache-maven-3.9.6-bin.tar.gz

查看,并删除 .tar文件
ls 
rm -i apache-maven-3.9.6-bin.tar.gz
ls

改Maven名字

# apache-maven-3.9.6     解压后的初始名称
# maven-3.9.6            更改后的名称
mv apache-maven-3.9.6 maven-3.9.6

退回至root 编写环境变量
cd /
vi /etc/profile

`` 这里有个小技巧 ,就是提前复制 Maven的路径然后再编写环境变量 ``

cd /usr/local/etc/Maven/maven-3.9.6

什劳子 i 写入模式 、ESC + :+wq 进行写入不用说了吧 !

重载profile文件
source /etc/profile
查看mvn版本
mvn -version

Nacos Server

使用Secure CRT 上传 Nacos

移动 Nacos至安装目录
mv nacos-server-2.3.0.tar.gz /usr/local/etc/
cd /usr/local/etc

解压Nacos包
tar -zxvf nacos-server-2.3.0.tar.gz 

删除Nacos安装包
rm -i nacos-server-2.3.0.tar.gz 

启动Nacos Server
cd /
 cd /usr/local/etc/nacos/bin
 ls
 sh startup.sh -m standalone # 单机模式

查看后台运行面板
cat /usr/local/etc/nacos/logs/start.out

console:会有一个地址 http://000.000.000.000:8848/nacos/index.html

访问 Nacos Server服务器

是因为没有开启端口号 关闭Nacos

sh shutdown.sh

开启8848 指定端口
查看防火墙状态
firewall-cmd --state #显示防火墙状态

开放端口号
 firewall-cmd --add-port=8848/tcp #设置临时端口
 firewall-cmd --add-port=8848/tcp --permanent  #设置永久开放此端口

重新加载并查看端口号

firewall-cmd --reload        # 重新加载防火墙
firewall-cmd  --list-port    # 查看开防火墙开放的端口号

重启Nacos Server并访问

http://000.000.000.000:8848/nacos/index.html

成功访问!

此时,页面是可以访问的,但是要使用程序运行会报错误gRpc 和connection timeout错误,是因为Nacos2.0 之后采用grpc协议,这与传统的访问并不相同的是grpc的端口号会向前移动1000、1000+1或者向后移动1000举例说明8848端口号 8848 + - 1000、8848+1000+1 就是7848 -- 8848 -- 9848--9849

导致连接超时(因为根本连接不上)

解决问题

CentOS Stream9 添加端口号

## 8848端口已经添加完了 --permanent 永久开放端口号
firewall-cmd --add-port=7848/tcp --permanent
firewall-cmd --add-port=9848/tcp --permanent
firewall-cmd --reload        # 重新加载防火墙
firewall-cmd --list-port    #查看防火墙开放的端口号
## 删除端口(举例说明)
firewall-cmd --remove-port=8080/tcp --permanent

已经可以注册了

Nacos集群

相信你们都应搭建起来自己单机版的Nacos了,下面我们搭建集群,嘎嘎简单!

准备CentOS

克隆我们单机的Nacos的CentOS就行,用几个克隆几个,小白认为服务器个数要是奇数的(不要忘记修改IP地址,反正吧!不修改也不会报错的,但是公司服务器肯定不是同个IP的,模拟也要像一点儿) 不会修改的小白主页中找CentOS Stream 9 修改静态IP就行

修改配置
进入到Nacos的bin目录中

编辑 startup.sh
vi startup.sh

修改 运行内存(如果自己的虚拟机空间够大的话,不用修改,其实小白喜欢内存大的,但是我的虚拟机空间小) 上面说如果是standalong内存是。。。。else(就是说不是单机状态的内存是2g/2g/1g)         

修改,必须修改!我内存一共才设置成2G呀!!!!

i写入模式

ESC : wq 写入并退出

编辑Nacos config
 cd ../conf
修改application.properties
 vi application.properties

对了还要准备一个mysql,一般本地都有开放端口就行了,然后还要在MySQL中创建一个Nacos数据库;创建表 此表有迹可循啊

打开它,赋值它的所有吧!在MySQL中粘贴运行!

修改cluster.conf文件

咦咦咦!!!咋没有尼!纳尼!

cp cluster.conf.example cluster.conf

编辑cluster.conf 添加Nacos集群ip、端口号 Nacos服务的IP地址:端口号

开放端口(关键所在)

每个Nacos服务都要开放Nacos集群成员中的每个Nacos服务的端口(grpc) 我搭建三个Nacos服务,端口号为 8848、8849、8850 所以每个Nacos服务开放的端口加上grpc限制所以端口号为: Nacos1端口号:7848、8848、9848 Nacos2端口号:7849、8849、9849 Nacos3端口号:7850、8850、9850

Nacos1开放的端口号为:

firewall-cmd --add-port=7848/tcp --permanent
firewall-cmd --add-port=8848/tcp --permanent
firewall-cmd --add-port=9848/tcp --permanent
firewall-cmd --add-port=7849/tcp --permanent
firewall-cmd --add-port=8849/tcp --permanent
firewall-cmd --add-port=9849/tcp --permanent
firewall-cmd --add-port=7850/tcp --permanent
firewall-cmd --add-port=8850/tcp --permanent
firewall-cmd --add-port=9850/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port

我的娘啊!晕晕,不怕,小白能解决

# 批量开放端口号,端口号分段添加
firewall-cmd --add-port=7848-7853/tcp --permanent
firewall-cmd --add-port=8848-8853/tcp --permanent
firewall-cmd --add-port=9848-9853/tcp --permanent

# 重新加载
firewall-cmd --reload

# 查看开放的端口号
firewall-cmd --list-port

飞起来!

每台Nacos服务器在不开放所有端口号的情况下,只有本机是在线状态,其他Nacos均是Down机状态

每台Nacos开启所有Nacos端口号

Nginx

nginx官网

nginx官网:nginx newsicon-default.png?t=N7T8https://nginx.org/

nginx官网下载:https://nginx.org/en/download 在这里插入图片描述​ 上传文件到Linux系统上 在这里插入图片描述​ 创建文件夹在/usr/local/etc/(这是小白自己的爱好,可以不用创建文件夹)

cd /usr/local/etc/
mkdir nginx

Nginx压缩文件移动至指定文件夹

# 将Nginx压缩文件移动至指定地址
mv nginx-1.25.4.tar.gz /usr/local/etc/nginx/
# 进入指定的文件夹中
cd /usr/local/etc/nginx/

在这里插入图片描述

解压Nginx文件

解压文件

tar -zxvf nginx-1.25.4.tar.gz

在这里插入图片描述

删除压缩文件

rm -i nginx-1.25.4.tar.gz

在这里插入图片描述

安装Nginx所使用的环境
# 包括 gcc、pcre、zlib 、openssl

yum -y install gcc-c++
​
yum -y install pcre pcre-devel
​
yum -y install zlib zlib-devel
​
yum -y install openssl openssl-devel
​
配置Nginx文件

nginx-1.25.4 configure文件配置及插件

--with-cc=cl
--builddir=objs.msvc8
--with-debug
--prefix=
--conf-path=conf/nginx.conf
--pid-path=logs/nginx.pid
--http-log-path=logs/access.log
--error-log-path=logs/error.log
--sbin-path=nginx.exe
--http-client-body-temp-path=temp/client_body_temp
--http-proxy-temp-path=temp/proxy_temp
--http-fastcgi-temp-path=temp/fastcgi_temp
--http-scgi-temp-path=temp/scgi_temp
--http-uwsgi-temp-path=temp/uwsgi_temp
--with-cc-opt=-DFD_SETSIZE=1024
--with-pcre=objs.msvc8/lib/pcre2-10.39
--with-zlib=objs.msvc8/lib/zlib-1.3.1
--with-http_v2_module
--with-http_realip_module
--with-http_addition_module
--with-http_sub_module
--with-http_dav_module
--with-http_stub_status_module
--with-http_flv_module
--with-http_mp4_module
--with-http_gunzip_module
--with-http_gzip_static_module
--with-http_auth_request_module
--with-http_random_index_module
--with-http_secure_link_module
--with-http_slice_module
--with-mail
--with-stream
--with-stream_realip_module
--with-stream_ssl_preread_module
--with-openssl=objs.msvc8/lib/openssl-3.0.13
--with-openssl-opt='no-asm no-tests
-D_WIN32_WINNT=0x0501'
--with-http_ssl_module
--with-mail_ssl_module
--with-stream_ssl_module

配置configure配置文件

#执行命令
# 文件的编译目录和解压目录不能再同一个文件夹
#prefix= 指向安装目录(编译安装)
#sbin-path= 指向Nginx 启动程序
#conf-path= 指向配置文件(nginx.conf)
#error-log-path= 指向错误日志目录
#pid-path= 指向pid文件(nginx.pid)
#http-log-path= 设定access log路径
#with-http_gzip_static_module 启用ngx_http_gzip_static_module支持(在线实时压缩输出数据流)
#with-http_stub_status_module 启用ngx_http_stub_status_module支持(获取nginx自上次启动以来的工作状态)
#with-http_ssl_module 启用ngx_http_ssl_module支持(使支持https请求,需已安装openssl)
#支持http2
#with-http_v2_module
#支持Debug模式
# with-http-Debug
# 安装 Stream
# --with-stream
# nginx 如果整合Nacos2.0+版本需要安装Stream 模块和http-v2 因为要使用grpc就要涉及到端口转移,要用到Stream模块 
​
./configure --prefix=/usr/local/etc/nginx --sbin-path=/usr/local/etc/nginx/install/sbin --conf-path=/usr/local/etc/nginx/install/conf/nginx.conf  --error-log-path=/usr/local/etc/nginx/logs/error.log --pid-path=/usr/local/etc/nginx/logs/nginx.pid  --http-log-path=/usr/local/etc/nginx/logs/access.log --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --with-http-v2-module --with-stream_realip_module --with-stream_ssl_preread_module --with-http-Debug --with-stream
​
安装Nginx
make
make install
启动Nginx

进入Nginx的sbin文件夹

cd /usr/local/etc/workspace-nginx/nginx-1.25.4/sbin/

启动Nginx

./nginx

在这里插入图片描述

启动命令
# 启动 nginx:
./nginx
# 优雅停止 nginx:
./nginx -s quit
# 快速停止 nginx:
./nginx -s stop
# 重启nginx:
./nginx -s reload

在这里插入图片描述

开放端口号

通过上面控制台输出 端口号是80端口 开放80端口

在这里插入图片描述

​ 重启Nginx

在这里插入图片描述

访问http://+你的IP地址+:80

在这里插入图片描述

配置环境变量
编写profile文件
cd /
vi /etc/profile

i进入写入模式

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
​
# setting Nginx environment
NGINX_HOME=/usr/local/etc/workspace-nginx/nginx-1.25.4
PATH=$PATH:$NGINX_HOME/sbin
export NGINX_HOME PATH

ESC :wq 进行写入

重新加载profile文件
source /etc/profile
编写systemd单元文件管理nginx服务

Nginx作为服务程序,需要为其编写一个单元文件以便systemd能够管理它,在/usr/lib/systemd/system目录下创建一个nginx.service文本文件

[Unit]
Description=The nginx HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
#自己nginx启动的pid文件自己找到文件目录
PIDFile=/usr/local/etc/nginx/nginx-1.25.4/logs/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/local/etc/nginx/nginx-1.25.4/sbin/nginx -t -c /usr/local/etc/nginx/nginx-1.25.4/conf/nginx.conf
ExecStart=/usr/local/etc/nginx/nginx-1.25.4/sbin/nginx -c /usr/local/etc/nginx/nginx-1.25.4/conf/nginx.conf
​
ExecReload=/usr/local/etc/nginx/nginx-1.25.4/sbin/nginx -s reload
# 默认
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=mixed
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
重新加载system文件

要让systemd重新识别此单元文件,通常执行systemctl daemon-reload命令重载配置,这样就可以使用systemd来管理nginx的启动、重启。

systemctl daemon-reload            # 重新加载
systemctl restart nginx            # 重启Nginx.service
systemctl status nginx.service     # 查看状态

img

可以看到nginx的状态为running~

Nginx搭建Nacos集群

编写Nginx conf文件

vi /usr/local/etc/nginx/install/conf/nginx.conf
# http 和Stream 是同级模块
http {
upstream nacos-cluster {
        # nacos cluster IP port
        server 000.000.000.000:8848;
​
        server 000.000.000.000:8849;
​
        server 000.000.000.000:8850;
​
        server 000.000.000.000:8851;
​
        server 000.000.000.000:8852;
​
    }
     server {
        # listen port
        listen          8888;
        # server name
        server_name     localhost;
        # location configure
        location /nacos/ {
                proxy_pass http://nacos-cluster/nacos/;
        }
    }
}
stream {
    # nacos cluster offset port Nacos集群偏移端口
    upstream nacos-cluster-grpc {
        #grpc nacos server IP port
        server 000.000.000.000:9848;
​
        server 000.000.000.000:9849;
​
        server 000.000.000.000:9850;
​
        server 000.000.000.000:9851;
​
        server 000.000.000.000:9852;
    }
​
    # server proxy offset port
    server {
        listen  9888;
        proxy_pass nacos-cluster-grpc;
    }

重新加载Nginx、重启Nginx

# 重新加载
systemctl daemon-reload
# 重启Nginx
systemctl restart nginx
#查看Nginx运行状态
systemctl status nginx

开放偏移端口号

# 开放端口号
firewall-cmd --add-port=8888/tcp --permanent
firewall-cmd --add-port=9888/tcp --permanent
# 重新加载 防火墙
firewall-cmd --reload
# 产看端口号
firewall-cmd --list-port

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1547824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣--并查集684.冗余连接

思路分析: 首先定义了一个Solution类,包含了私有成员变量fa[1001]和n,以及三个私有成员函数find()、togother()和findRedundantConnection()。 find()函数用于查找节点的根节点(即所在连通分量的代表节点)&#xff0c…

2024最新华为OD机试试题库全 -【二叉树的广度搜索】- C卷

1. 🌈题目详情 1.1 ⚠️题目 有一棵二叉树,每个节点由一个大写字母标识(最多26个节点)。 现有两组字母,分别表示后序遍历(左孩子->右孩子->父节点)和中序遍历(左孩子->父节点->右孩子)的结果,请你输出层序遍历的结果。 1.2 🔣输入要求 每个输入文…

CMC学习系列 (2):EEG-EMG有可能作为运动恢复的生物标志物

CMC学习系列:EEG-EMG有可能作为运动恢复的生物标志物 0. 引言1. 主要贡献2. 方法2.1 显著 bins 数量2.2 偏侧性指数 3. 结果3.1 临床评估3.2 CMC3.3 卒中后CMC随时间变化 4. 讨论和结论5. 总结欢迎来稿 论文地址:https://www.frontiersin.org/journals/neurology/ar…

信号处理--基于混合CNN和transfomer自注意力的多通道脑电信号的情绪分类的简单应用

目录 关于 工具 数据集 数据集简述 方法实现 数据读取 ​编辑数据预处理 传统机器学习模型(逻辑回归,支持向量机,随机森林) 多层感知机模型 CNNtransfomer模型 代码获取 关于 本实验利用结合了卷积神经网络 (CNN) 和 Transformer 组件的混合…

在DasViewer里怎么查看三维模型的坐标系?

量测就可以查看坐标系了,或者查看xml文件中坐标系的代号。量测就可以查看坐标系了,或者查看xml文件中坐标系的代号。 DasViewer是由大势智慧自主研发的免费的实景三维模型浏览器,采用多细节层次模型逐步自适应加载技术,让用户在极低的电脑配置下,也能流畅…

Go语言学习Day3:数据类型、运算符与流程控制

名人说:莫愁千里路,自有到来风。 ——钱珝 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、数据类型①布尔类型②整型③浮点型④string⑤类型转换 2、运算符①算术运算符②逻辑运算符③关…

STM32学习笔记(6_8)- TIM定时器的编码器接口代码

无人问津也好,技不如人也罢,都应静下心来,去做该做的事。 最近在学STM32,所以也开贴记录一下主要内容,省的过目即忘。视频教程为江科大(改名江协科技),网站jiangxiekeji.com 现在开…

원클릭으로 주류 전자상거래 플랫폼 상품 상세 데이터 수집 및 접속 시연 예제 (한국어판)

클릭 한 번으로 전자상거래 플랫폼 데이터를 캡처하는 것은 일반적으로 웹 페이지에서 정보를 자동으로 추출 할 수있는 네트워크 파충류 기술과 관련됩니다.그러나 모든 형태의 데이터 수집은 해당 웹 사이트의 사용 약관 및 개인 정보 보호 정책 및 현지 법률 및 규정을 준수…

百度蜘蛛池平台在线发外链-原理以及搭建教程

蜘蛛池平台是一款非常实用的SEO优化工具,它可以帮助网站管理员提高网站的排名和流量。百度蜘蛛池原理是基于百度搜索引擎的搜索算法,通过对网页的内容、结构、链接等方面进行分析和评估,从而判断网页的质量和重要性,从而对网页进行…

JAVA面试大全之基础篇

目录 1、语法基础 1.1、面向对象特性?​​​​​​​ 1.2、a a b 与 a b 的区别 1.3、3*0.1 0.3 将会返回什么? true 还是 false? 1.4、能在 Switch 中使用 String 吗? 1.5、对equals()和hashCode()的理解? 1.6、final、finalize 和 finally 的不同之…

【物联网开源平台】tingsboard二次开发

别看这篇了,这篇就当我的一个记录,我有空我再写过一篇,编译的时候出现了一个错误,然后我针对那一个错误执行了一个命令,出现了绿色的succes,我就以为整个tingsboard项目编译成功了,后面发现的时候&#xff…

怎么清理苹果电脑内存?CleanMyMac X4.15.2最新中文版使用教程

近日,我的苹果电脑似乎遭遇了一点小麻烦,每当深入工作或沉浸于娱乐之时,突如其来的一个警告弹窗就像一颗冰凉的霰弹,打断了我所有的思绪:内存不足!!!怎么清理苹果电脑内存&#xff0…

机器学习——神经网络简单了解

一、神经网络基本概念 神经网络可以分为生物神经网络和人工神经网络 (1)生物神经网络,指的是生物脑内的神经元、突触等构成的神经网络,可以使生物体产生意识,并协助生物体思考、行动和管理各机体活动。 (2)人工神经网络,是目前热门的深度学习的研究…

蔓灵花组织wmRAT分析

wmRAT分析 MD5:35639088a2406aa9e22fa8c03e989983 样本分析 多次调用sleep函数绕过沙箱检测。 创建线程获取username computername 磁盘驱动器个数 通过域名microsoft.com获取ip地址 通过c2服务器域名maxdimservice.com获取ip地址85.239.53.31 408460函数获取…

44 el-dialog 的 appendToBody 属性, 导致 vue 响应式失效

前言 我们经常会碰到 一些 模型和视图 不同步的问题 通常意义上 主要的问题为 列表的某响应式数据更新着更新着 后面就变成非响应式对象了, 然后 就造成了 数据一直在更新, 但是 视图的渲染后面就未渲染了, 这是一个由于 模型上的问题 导致的数据的不在响应式更新 又或者 是…

借力AI+视频号电商,腾讯广告业务这驾马车能跑多远?

腾讯的“功劳簿”又添上了几笔。 日前,腾讯披露了2023年四季度及全年财报。报告显示,2023年,腾讯营收6090.15亿元,同比增长10%;调整后净利润(Non-IFRS)1576.88亿元,同比增长36%。 …

在stable diffusion中手指纠错的指令和关键词是什么?

在Stable Diffusion模型中,如果您想对生成的图像中的手指进行纠错,您可以在描述中使用特定的指令和关键词来引导模型关注于手指区域并作出调整。 "Perfect hand" (完美的手) "Five fingers" (五个…

中国科学院半导体研究所汪林望:在曙光超级计算机上对第一性原理计算软件LS3DF进行1000万个硅原子模拟

编者荐语: 面对纳米材料等大体系时,电荷补丁法可以计算几千甚至上万原子, 但是电荷补丁法作为非自洽计算,不能给出原子受力,也不能用来弛豫原子坐标。面对摩尔条纹或线性位错等问题,我们需要弛豫原子的坐标…

javaSwing模拟写字板

一、摘要 目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并且涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。此简易JAVA写字板程序,使用Java程序编…

Object Detection--Loss Function:从IoU到CIoU

本篇总结Loss Function中的IoU系列代码。 1. IoU 交并集,两个框交集面积除以并集面积。(论写写画画的重要性)(找原文看看) """ box1[x1, y1, x2, y2] box2[x1, y1, x2, y2] return iou ""…