范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

关于开发部署中(4层7层C端S端)软负载均衡笔记

  写在前面负载这一块的知识有些乱, 听人家常说 软负载  、硬负载  ,四层负载  ,七层负载  、客户端负载  ,服务端负载  之类的,所以梳理一下。负载均衡在系统架构中是一个非常重要,通过负载均衡可以提高系统的高可用,缓解网络、硬件资源的限制。 本文主要涉及一些项目中常用的负载方式,很浅,不涉及负载算法啥的,做负载离不开代理,所以文中提到代理服务器即负载服务器。 这里梳理的方式从  Dev  和Ops  的概念出发。这里简单分类一下:
  软负载
  客户端负载
  Spring Cloud Ribbon
  服务端负载  Ngixn
  (4-7)层负载Hyproxy
  (4-7)层负载kube-proxy
  (4-7)层负载
  LVS  (4)层负载
  硬负载
  F5
  关于  LVS  和kube-proxy、F5  我们这里之后在和小伙伴分享,F5  没有接触过,LVS  的demo容器的方式一直没有成功,kube-proxy  这一块我还没学到,只是简单的了解.
  如果能深刻理解苦难,苦难就会给人带来崇高感 。 ——路遥 一、软负载
  处理传输层到应用层的数据,为了能通一个URL或者IP+PORT将前端的访问分发到后台的多个服务器上 1、客户端负载
  Dev 即开发角度的负载均衡。开发中的负载均衡一般是在 微服务  中涉及。服务提供方一般以多实例的形式提供服务,负载均衡功能能够让服务调用方连接到合适的服务节点  。 并且,服务节点选择的过程对服务调用方来说是透明的  。
  所以这里理解为是客户端的负载均衡,是相对服务端负载均衡而言。
  客户端负载均衡来讲,就是调用的客户端本身是知道所有服务信息,当需要调用服务上的接口的时候,客户端从自身所维护的服务列表中,根据提前配置好的负载均衡策略,自己挑选一个服务来调用,此时,客户端知道它所调用的是哪一个服务.
  在 Spring Cloud   中使用在RestTemplate  进行服务调用,要想使用负载均衡功能,需要使用Spring Cloud Ribbon  。
  Spring Cloud Ribbon  是一个基于HTTP和TCP的客户端负载均衡工具,它基于Nettlix Ribbon  实现。通过Spring Cloud  的封装,可以让我们轻松地将面向服务的REST  模板请求自动转换成客户端负载均衡的服务调用。
  使用时需要给 RestTemplate  实例上添加一个@LoadBalanced  注解即可,此时, RestTemplate  就会自动具备负载均衡功能,这个负载均衡  就是客户端负载均衡  。package com.liruilong.consulcon;   import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestTemplate;   @SpringBootApplication @EnableDiscoveryClient public class ConsulConApplication {       public static void main(String[] args) {         SpringApplication.run(ConsulConApplication.class, args);     }       @Bean     @LoadBalanced     RestTemplate restTemplate(){         return  new RestTemplate();     }   } 二、服务端负载
  Ops   即运维角度的负载均衡,这里的负载我们也称为服务端负载
  所谓服务端负载均衡,比如传统的Nginx的方式,调用的客户端并不知道具体是哪个服务提供的服务,它也不关心,反正请求发送给Nginx, 或者hyproxy作为代理的服务器,然后 Ngixn 在请求负载任意服务,客户端只需要记着Nginx的地址即可。 1、Nginx负载七层(应用层)负载
  Nginx 7层负载是最常见的一种负载,所谓7层负载,即应用层负载,即基于应用层协议(TELNET,SSH,HTTP,SMTP,POP…)做的代理,7层负载需要解析数据包的具体内容,需要消耗额外的cpu,然后根据具体内容(url, 参数, cookie, 请求头)匹配相应的路径,然后转发到相应的服务器。转发的过程是:建立和目标机器的连接,然后转发请求,收到响应数据再转发给请求客户端。
  使用docker构建一个内部网络  [root@liruilongs.github.io]-[~]  $ docker network create --subnet 10.1.1.1/24 load_balancing 0e0cdf9c70b038f9bcd44fd282ddc3e5bff77403ca28ce5b9006c20793ae2f8d
  内网里运行两个httpd服务
  10.1.1.22  [root@liruilongs.github.io]-[~/load_balancing]  $ docker run -itd  --name=web1 --net=load_balancing -p 80  -h web1 --ip 10.1.1.22 httpd ccaa091f295d40c61e50f103e9d84b86caddf9f98d6e5075de3690d93ab48f70  [root@liruilongs.github.io]-[~/load_balancing]  $ echo 10.1.1.22 >index.html;cat index.html 10.1.1.22  [root@liruilongs.github.io]-[~/load_balancing]  $ docker cp ./index.html web1:/usr/local/apache2/htdocs/  [root@liruilongs.github.io]-[~/load_balancing]  $ docker ps CONTAINER ID   IMAGE     COMMAND              CREATED          STATUS          PORTS                                     NAMES ccaa091f295d   httpd     "httpd-foreground"   29 seconds ago   Up 28 seconds   0.0.0.0:49153->80/tcp, :::49153->80/tcp   web1  [root@liruilongs.github.io]-[~/load_balancing]  $ curl 127.0.0.1:49153 10.1.1.22  [root@liruilongs.github.io]-[~/load_balancing]  $
  10.1.1.33  [root@liruilongs.github.io]-[~/load_balancing]  $ docker run -itd  --name=web2 --net=load_balancing -p 80  -h web2 --ip 10.1.1.33 httpd 5b08d54cf4983f6f6ce69cc0cee4b2eab2684cfde8deee89796196760924e434  [root@liruilongs.github.io]-[~/load_balancing]  $  echo 10.1.1.33 >index.html;cat index.html 10.1.1.33  [root@liruilongs.github.io]-[~/load_balancing]  $ docker cp ./index.html web2:/usr/local/apache2/htdocs/  [root@liruilongs.github.io]-[~/load_balancing]  $ docker ps CONTAINER ID   IMAGE     COMMAND              CREATED          STATUS          PORTS                                     NAMES 5b08d54cf498   httpd     "httpd-foreground"   40 seconds ago   Up 38 seconds   0.0.0.0:49154->80/tcp, :::49154->80/tcp   web2 ccaa091f295d   httpd     "httpd-foreground"   6 minutes ago    Up 6 minutes    0.0.0.0:49153->80/tcp, :::49153->80/tcp   web1  [root@liruilongs.github.io]-[~/load_balancing]  $  curl 127.0.0.1:49154 10.1.1.33  [root@liruilongs.github.io]-[~/load_balancing]  $
  Ngixn实现到上面两个httpd服务的负载
  ng配置文件
  [root@liruilongs.github.io]-[~/load_balancing]  $ cat nginx.conf user  nginx; worker_processes  auto; error_log  /var/log/nginx/error.log notice; pid        /var/run/nginx.pid; #daemon off; events {     worker_connections  1024; } http {     include       /etc/nginx/mime.types;     default_type  application/octet-stream;      log_format  main  "$upstream_addr - $remote_addr - $remote_user [$time_local] "$request" "                       "$status $body_bytes_sent "$http_referer" "                       ""$http_user_agent" "$http_x_forwarded_for" ";     access_log  /var/log/nginx/nginx_access.log  main;     sendfile        on;     keepalive_timeout  65;     include /etc/nginx/conf.d/*.conf;     server {         listen          8099;         server_name     localhost;         root            /var/www/html/;         index           index.html index.htm;         access_log      /var/log/nginx/default_access.log main;         error_log       /var/log/nginx/default_error.log;         location / {                 proxy_pass http://backend;         }         location ~ .* {                         proxy_pass http://backend;                         proxy_set_header Host $http_host;                         proxy_set_header X-Real-IP $remote_addr;                         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;         } }     upstream backend {         server web2:80;         server web1:80;     } }
  运行Nginx容器  [root@liruilongs.github.io]-[~/load_balancing]  $ docker run -itd -p 8099:8099 --name=nginx --network=load_balancing  -v $PWD/nginx.conf:/etc/nginx/nginx.conf nginx 0af20ed5c390e81398037a498fc7d385cac96cd2f403a8b08f6f4e09d7a20ee0
  测试一下   [root@liruilongs.github.io]-[~/load_balancing]  $ docker ps CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                               NAMES 0af20ed5c390   nginx     "/docker-entrypoint.…"   4 seconds ago    Up 3 seconds    80/tcp, 0.0.0.0:8099->8099/tcp, :::8099->8099/tcp   nginx b16bcb89e0a8   httpd     "httpd-foreground"       32 minutes ago   Up 32 minutes   0.0.0.0:49155->80/tcp, :::49155->80/tcp             web1 5b08d54cf498   httpd     "httpd-foreground"       39 minutes ago   Up 39 minutes   0.0.0.0:49154->80/tcp, :::49154->80/tcp             web2  [root@liruilongs.github.io]-[~/load_balancing]  $ curl 127.0.0.1:8099 10.1.1.33  [root@liruilongs.github.io]-[~/load_balancing]  $ curl 127.0.0.1:8099 10.1.1.22  [root@liruilongs.github.io]-[~/load_balancing]  $ 四层(传输层)负载
  所谓四层负载,即在传输层协议的基础上来做负载,基于TCP,UDP等协议,传输层的作用是确保数据被可靠的传输送到目标地址,能够让应用程序之间实现通信,所以彼此传递的是数据包,标识的只有IP+端口。不涉及具体的url其他结构解析。路径匹配等,不会涉及具体的应用层协议,所以理论上四层负载要比七成负载快。
  nginx 四层代理是nginx1.9.0开始新增的功能,需要开启 --with-stream  模块,可以实现四层协议的转发、代理、负载等功能。
  这里的话,我们还是用容器的方式。配置方式和七层主要是配置文件的区别
  ng配置文件
  $ cat nginx.conf user  nginx; worker_processes  auto; error_log  /var/log/nginx/error.log notice; pid        /var/run/nginx.pid; daemon off;  events {     worker_connections  1024; } # 四层代理的方式 stream{     server {         listen     8088;         proxy_pass backend;         }     upstream backend {         server web1:80;         server web2:80;     }  }   http { # 这个是协议级别     include mime.types;     default_type application/octet-stream;     keepalive_timeout 65;     gzip on;     server { #这个是服务器级别         listen 80;         server_name localhost;         location / { #这个是请求级别             root html;             index index.html index.htm;         }     } }
  启动4层负载的Nginx  [root@liruilongs.github.io]-[~/load_balancing]  $ docker run -itd -p 8088:8088 --name=nginx4 --network=load_balancing  -v $PWD/nginx.conf:/etc/nginx/nginx.conf nginx nginx 7c342f86752c5fe494b5a142983503d82dd11ea54e2968da7172f2201d1c45ea  [root@liruilongs.github.io]-[~/load_balancing]  $ docker logs nginx4 /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh /docker-entrypoint.sh: Configuration complete; ready for start up 2021/11/16 16:25:50 [notice] 1#1: using the "epoll" event method 2021/11/16 16:25:50 [notice] 1#1: nginx/1.21.3 2021/11/16 16:25:50 [notice] 1#1: built by gcc 8.3.0 (Debian 8.3.0-6) 2021/11/16 16:25:50 [notice] 1#1: OS: Linux 3.10.0-693.el7.x86_64 2021/11/16 16:25:50 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576 2021/11/16 16:25:50 [notice] 1#1: start worker processes 2021/11/16 16:25:50 [notice] 1#1: start worker process 31 2021/11/16 16:25:50 [notice] 1#1: start worker process 32  [root@liruilongs.github.io]-[~/load_balancing]  $ docker ps CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                               NAMES 7c342f86752c   nginx     "/docker-entrypoint.…"   21 seconds ago   Up 19 seconds   80/tcp, 0.0.0.0:8088->8088/tcp, :::8088->8088/tcp   nginx4 0af20ed5c390   nginx     "/docker-entrypoint.…"   2 hours ago      Up 2 hours      80/tcp, 0.0.0.0:8099->8099/tcp, :::8099->8099/tcp   nginx b16bcb89e0a8   httpd     "httpd-foreground"       2 hours ago      Up 2 hours      0.0.0.0:49155->80/tcp, :::49155->80/tcp             web1 5b08d54cf498   httpd     "httpd-foreground"       2 hours ago      Up 2 hours      0.0.0.0:49154->80/tcp, :::49154->80/tcp             web2
  测试一下  [root@liruilongs.github.io]-[~/load_balancing]  $ curl 127.0.0.1:8088 10.1.1.22  [root@liruilongs.github.io]-[~/load_balancing]  $ curl 127.0.0.1:8088 10.1.1.33  [root@liruilongs.github.io]-[~/load_balancing]  $ curl 127.0.0.1:8088 10.1.1.22 2、HAProxy负载
  HAProxy   是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。
  HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要 会话保持  或七层处理  。HAProxy完全可以支持数以万计的并发连接。7 层(应用层)负载
  这里我们还用之前的连个httpd服务演示  [root@liruilongs.github.io]-[~/load_balancing]  $ docker pull haproxy
  haproxy.cfg配置文件  [root@liruilongs.github.io]-[~/load_balancing]  $ cat haproxy.cfg global     log 127.0.0.1 local0     log 127.0.0.1 local1 notice     maxconn 4096  defaults     log     global     mode    http     option  httplog     option  dontlognull     timeout connect 5000ms     timeout client  50000ms     timeout server  50000ms  listen  admin_stats     bind 0.0.0.0:8070     mode http     stats enable     stats hide-version     stats scope .     stats realm Haproxy Statistics     stats refresh 30s     stats uri /     stats auth user:pass  frontend balancer     bind 0.0.0.0:8077     mode http     default_backend web_backends  backend web_backends     mode http     option forwardfor     balance roundrobin     server web1 web1:80 check     server web2 web2:80 check     option httpchk GET /     http-check expect status 200    [root@liruilongs.github.io]-[~/load_balancing]  $  [root@liruilongs.github.io]-[~/load_balancing]  $ docker run -itd -p 8070 -p 8077 --name=haproxy --net=load_balancing -v $PWD/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg  haproxy a467636f6fdc75a7cf7538c32caab78c5a9e465235e2baec212bc9274a2cd534  [root@liruilongs.github.io]-[~/load_balancing]  $ docker ps CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                                                                      NAMES a467636f6fdc   haproxy   "docker-entrypoint.s…"   2 seconds ago    Up 1 second     0.0.0.0:49163->8070/tcp, :::49163->8070/tcp, 0.0.0.0:49162->8077/tcp, :::49162->8077/tcp   haproxy 7c342f86752c   nginx     "/docker-entrypoint.…"   40 minutes ago   Up 40 minutes   80/tcp, 0.0.0.0:8088->8088/tcp, :::8088->8088/tcp                                          nginx4 0af20ed5c390   nginx     "/docker-entrypoint.…"   2 hours ago      Up 2 hours      80/tcp, 0.0.0.0:8099->8099/tcp, :::8099->8099/tcp                                          nginx b16bcb89e0a8   httpd     "httpd-foreground"       3 hours ago      Up 3 hours      0.0.0.0:49155->80/tcp, :::49155->80/tcp                                                    web1 5b08d54cf498   httpd     "httpd-foreground"       3 hours ago      Up 3 hours      0.0.0.0:49154->80/tcp, :::49154->80/tcp
  测试下  [root@liruilongs.github.io]-[~/load_balancing]  $ curl 127.0.0.1:49162 10.1.1.22  [root@liruilongs.github.io]-[~/load_balancing]  $ curl 127.0.0.1:49162 10.1.1.33  [root@liruilongs.github.io]-[~/load_balancing]  $
  统计页面
  4 层(传输层)负载
  四层负载和七层负载也是配置文件的区别  [root@liruilongs.github.io]-[~/load_balancing]  $ cat haproxy.cfg global     log 127.0.0.1 local0     log 127.0.0.1 local1 notice     maxconn 4096  defaults     log     global     mode    http     option  httplog     option  dontlognull     timeout connect 5000ms     timeout client  50000ms     timeout server  50000ms  listen  admin_stats     bind 0.0.0.0:8070     mode http     stats enable     stats hide-version     stats scope .     stats realm Haproxy Statistics     stats refresh 30s     stats uri /     stats auth user:pass  listen web     bind *:3306     mode tcp     balance roundrobin     server web1 10.1.1.22:80  weight 1  check inter 1s rise 2 fall 2     server web2 10.1.1.33:80  weight 1  check inter 1s rise 2 fall 2   [root@liruilongs.github.io]-[~/load_balancing]  $
  运行容器并测试  [root@liruilongs.github.io]-[~/load_balancing]  $ docker run -itd -p 8070 -p 3306 --name=haproxy4 --net=load_balancing -v $PWD/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg  haproxy 602eebc6ad525c420bad6061d9465fa7cdf2036d7db177efaf5450edf8c9db8b  [root@liruilongs.github.io]-[~/load_balancing]  $ docker ps CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                   NAMES 602eebc6ad52   haproxy   "docker-entrypoint.s…"   8 seconds ago   Up 6 seconds   0.0.0.0:49165->3306/tcp, :::49165->3306/tcp, 0.0.0.0:49164->8070/tcp, :::49164->8070/tcp   haproxy4 a467636f6fdc   haproxy   "docker-entrypoint.s…"   19 hours ago    Up 19 hours    0.0.0.0:49163->8070/tcp, :::49163->8070/tcp, 0.0.0.0:49162->8077/tcp, :::49162->8077/tcp   haproxy 7c342f86752c   nginx     "/docker-entrypoint.…"   20 hours ago    Up 20 hours    80/tcp, 0.0.0.0:8088->8088/tcp, :::8088->8088/tcp                   nginx4 0af20ed5c390   nginx     "/docker-entrypoint.…"   21 hours ago    Up 21 hours    80/tcp, 0.0.0.0:8099->8099/tcp, :::8099->8099/tcp                   nginx b16bcb89e0a8   httpd     "httpd-foreground"       22 hours ago    Up 22 hours    0.0.0.0:49155->80/tcp, :::49155->80/tcp                   web1 5b08d54cf498   httpd     "httpd-foreground"       22 hours ago    Up 22 hours    0.0.0.0:49154->80/tcp, :::49154->80/tcp                   web2  [root@liruilongs.github.io]-[~/load_balancing]  $ curl 127.0.0.1:49165 10.1.1.22  [root@liruilongs.github.io]-[~/load_balancing]  $ curl 127.0.0.1:49165 10.1.1.33  [root@liruilongs.github.io]-[~/load_balancing]  $

一计不成又生一计!Meta要在元宇宙发币,内部代号扎克币尽管推出的加密货币项目相继破产,但Facebook的母公司发币的雄心未灭。据英国金融时报报道,Facebook的金融部门MetaFinancialTechnologies一直在探索区块链世纪的新创造区块链,区块链技术的最早出现1991年。为了确保时间戳文件不被追溯及篡改,当时的两位科学家StuartHaber和W。ScottStornetta推出了一种实用计算的解决方案。该系vite自定义环境变量声明(随笔)来源LoongPanda场景通常情况下前端开发一个项目,需要部署多个不同环境,而且每个环境会出现访问不同的后端服务,比如给测试人员部署的测试环境用于演示的demo环境用户使用的生产乌克兰通过俄阵亡士兵照片找到其家属?人脸识别首次大规模用于军事冲突,引巨大争议据外媒报道,乌克兰当局日前根据一名无身份标识的俄罗斯阵亡士兵的照片,通过一个人脸数据库进行检索,找到了疑似该士兵的社交平台账号,并尝试联系其家属,告知这名士兵已身亡。报道称,乌方使Oracle学习笔记1。查找数据库中的实例,可以查看oracle数据库中所有实例的信息,如SELECTFROMallobjectswhereobjecttypeTABLE表示将oracle数据库里的t数字藏品背后的投资价值2022年1月5日,B站(哔哩哔哩)官方认证号哔哩哔哩数字藏品宣布旗下首款数字艺术头像鸽德正式开放报名,全网限量2333个。众多数字藏品映入眼帘,并引入元宇宙概念,热潮轮流席卷而来GPS和北斗到底什么关系?相信越来越多的军迷和小编一样,对中国近10年来的中国军事发展感到非常欣慰和自豪。随着自媒体,短视频的发展,我们越来越能够接收到一些先进武器,如导弹的介绍,当大家看到某某导弹采用GP为复杂性语言辩护类的意义viralinstruction在201415年的冬天,我是一名大学生,我的特点是手上有太多的空闲时间,却没有足够的钱让自己在空闲时间里忙碌。无聊又没钱,编程是一个完美的爱好。如果你已经拥有一台电脑,它是免费的,和好友秘密聊天用什么软件安全?既然是秘密聊天,聊天的内容和聊天的过程都需要保密。最好是见面私下沟通,或者是书信沟通。显然这在互联网时代是不太可能的,短时间的就某件事沟通还是可以,要是放在日常社交聊天中就不太现实想买高端旗舰别着急,这三款即将发布的手机才值得购买,不输苹果最近不少朋友咨询我推荐手机,除了现有市场上的机型,其实马上就要有三款重磅手机上市,款款都非常值得购买。五月小米12Ultra去年三月发布的小米11Ultra在前段时间猛降两千,一部UnixC学习小计C语言有两种可能的运行环境中,它们之间有一定差别(1)独立环境(freestanding)在独立环境中,C程序的运行没有操作系统的支持,因此,只具有最小部分的标准库能力。(2)宿主
小日子的居家利器米家互联网4套台面式洗碗机其实,我很久之前就想要一台这样的洗碗机,虽然它来的有些晚,但是对于很多年轻朋友而言,这台洗碗机真的是非常实用。之所以这么说,是因为这台洗碗机对于一人或者两人日常使用,真的是非常合适影音控制类场景和联动智能家居场景与自动化应用之四影音场景和联动影音场景和联动主要是指与视频音频设备有关的联动。一些比较简单的影音设备,例如小米电视,小爱音响之类,在场景和联动方面是比较简单的,例如用户可以设置如下联动实现主人(或安防类联动与环境类联动智能家居场景与自动化应用之三安防联动安防联动主要指的是各种消防类安全防范类的联动。实现安防功能用到的组件主要是烟雾传感器天然气传感器漏水传感器人体传感器摄像头门窗传感器等。根据安防发挥作用的时段不同,我把安防天井遮阳篷及其智能化的小总结天井是个好东西。天井的本质作用是用来实现通风和采光的,随着新风系统的广泛应用,通风的需求弱化了,但是采光的功能依然非常重要。我的房子中也有一个大概10平米的天井,解决采光问题,的确外表小升级,内涵大提升米家空气净化器ProH评测雾霾季节就要来了,赶紧上空气净化器。恰好9月底米家空气净化器ProH发布,来的正是时候,赶紧入手,据说相比现款Pro提升不少,甚至可以说是脱胎换骨。到底是否如此?一起来看看吧。外观长续航是最大亮点小米米家智能猫眼评测智能猫眼大家已经很熟悉了,可以监测门外情况,实现视频门铃语音对讲等功能,现在用的朋友越来越多,大家的认识也越来越全面,这里我就不详细介绍了。目前市场上智能猫眼产品非常丰富,但是总体但行好事,莫问前程米兔儿童手表4Pro先上实拍图。论外观,非常不错从外观上看,做工精致,手感圆润,不论是拿在手里还是佩戴,都非常舒服。大家可以点开高清大图,仔细看细节。正面可以看到前置摄像头。顶面与外向摄像头和拾音麦克小米智能家居系统安装前注意事项两年前,我写了一篇小米智能家居系统安装前注意事项,这两年里,小米的智能家居系统组件丰富了许多,此文也需要更新一下了。此文主要是讲如果打算安装小米的全屋智能系统,在装修时需要注意的预小米智能家居组件点评使用建议(2020年3月更新)三年前,我曾经写过小米智能家居(绿米智能家居)组件点评使用建议,这三年来,小米智能家居体系的发展壮大是大家有目共睹的,整体变化也是巨大的,因此此文也需要重新更新了。当前,小米(包括久违的升级全新米家智能多模网关纵横沙场若干年的米家多功能网关终于迎来了升级米家智能多模网关。新的米家智能多模网关以及光照传感器依然来自小米生态链的绿米联创。外观方面,小米米家智能多模网关更简洁了,上表面仅有指示依然很米家米家扫拖一体机评测继米家空调洗衣机烟灶套装后,米家全家桶的又一大组件米家扫拖机器人到手。亮个相我这台是黑色款,直径约35厘米,看上去很大气沉稳,重量3。6kg,拿到手里很有分量。激光雷达盖下方露出橙