作者: admin

  • 如何提高web應用的吞吐量

    如何提高web應用的吞吐量

    這篇博文所列舉的優化手段是針對比較傳統項目,但是想提高系統的吞吐量現在時髦的技術還是那些前後端未分離, 使用nginx當成靜態資源服務器去代理我們的靜態資源

    是誰限制了Throughput?

    當我們對一個傳統的項目進行壓力測試時,很容器就發現,系統的Throughput被數據庫(mysql)限制的死死的,儘管代碼看起來確實沒毛病,邏輯也沒有錯誤,但是過多的請求都被打向了數據庫,數據庫自個開啟大量的IO操作,這樣大的負載甚至會使Linux系統的整體負載驟然飆升,但是反觀我們的系統的吞吐量,呵呵…

    將目光投向緩存

    既然mysql的抗壓能力限制了我們的系統,那就將數據緩存起來,盡一切可能減少用戶和數據庫之間的直接接觸的次數,這樣我們的系統的吞吐量,同一時間能處理器的請求數量自然會升上去

    市面上的緩存技術很多, 比較火爆的是兩款緩存數據庫 Memcache 和 Redis ,

    Redis 和 Memcahe的區別

    • Redis不僅僅支持key-value鍵值對類型的數據,同時還支持list,set,hash等數據結構
    • redis支持數據的備份,即master-slaver模式的集群備份
    • Redis是支持數據持久化的,它可以將內存中的數據保存在磁盤中,支持RDB和AOF兩種持久化形式

    對Redis進行壓測

    # 挨個測試redis中的命令
    # 每個數據包大小是3字節
    # 100個併發, 發起10萬次請求
    redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000
    
    [root@139 ~]# redis-benchmark -h 127.0.0.1 -p 9997 -c 100 -n 100000
    ====== PING_INLINE ======
      100000 requests completed in 1.04 seconds
      100 parallel clients
      3 bytes payload
      keep alive: 1
    
    98.68% <= 1 milliseconds // 百分之98.68的請求在1毫秒內完成了
    99.98% <= 2 milliseconds 
    100.00% <= 2 milliseconds
    96525.09 requests per second  // 每秒完成的請求數在9萬六左右
    
    
    -d  指定數據包的大小,看下面redis的性能還是很強大的
    -q  簡化輸出的參數
    [root@139 ~]# redis-benchmark -h 127.0.0.1 -p 9997 -q -d 100 -c 100 -n 100000
    PING_INLINE: 98619.32 requests per second
    PING_BULK: 95877.28 requests per second
    SET: 96153.85 requests per second
    GET: 95147.48 requests per second
    INCR: 95238.10 requests per second
    LPUSH: 95328.88 requests per second
    RPUSH: 95877.28 requests per second
    LPOP: 95328.88 requests per second
    RPOP: 97276.27 requests per second
    SADD: 96339.12 requests per second
    HSET: 98231.83 requests per second
    SPOP: 94607.38 requests per second
    LPUSH (needed to benchmark LRANGE): 92165.90 requests per second
    LRANGE_100 (first 100 elements): 97181.73 requests per second
    LRANGE_300 (first 300 elements): 96153.85 requests per second
    LRANGE_500 (first 450 elements): 94428.70 requests per second
    LRANGE_600 (first 600 elements): 95969.28 requests per second
    MSET (10 keys): 98231.83 requests per second
    
    只測試 指定的命令
    -t 跟多個命令參數
    [root@139 ~]# redis-benchmark -p 9997 -t set,get -q -n 100000 -c 100 
    SET: 97276.27 requests per second
    GET: 98135.42 requests per second

    從上面的壓力測試中,可以看到,Redis的性能是絕對實力, 相當強悍,和mysql相比不是一個量級的, 所以結論很明顯,如果我們在用戶和mysql中鍵加一層redis做緩存,系統的吞吐量自然會上去

    於是為了提高系統的抗壓能力,我們將壓力從mysql逐步轉移到redis中

    頁面緩存技術

    在說頁面緩存之前,我們先說一下在一個傳統的項目中,一個請求的生命周期大概是這樣的: 從瀏覽器發出到服務端, 服務端查詢數據庫獲取結果, 再將結果數據傳遞給模板引擎將數據渲染進html頁面

    想提高這個過程的速度,我們可以這樣搞, 頁面緩存, 顧名思義就是將 html 頁面緩存到緩存數據庫中

    示例如下:

    一開始我們會先嘗試從緩存中獲取出已經渲染好的html源碼響應給客戶端, 響應的格式通過@ResponseBody和produces中的屬性進行控制,告訴瀏覽器自己會返回給它html文本

    優點: 將用戶的請求的壓力從mysql轉移到redis, 這點強度對redis單機來說根本不是事

    缺點: 很明顯,將請求擴大到頁面級別,數據一致性難免會受到影響, 這也是使用頁面緩存不得不考慮的一點

    特點1 : 嚴格控制緩存的時間, 一定別忘了添加過期時間…

    特點2 : 原來都是讓thymeleaf自動完成數據的渲染,現在的話,很明顯是我們手動在渲染數據

        @RequestMapping(value = "/to_list",produces = "text/html;charset=UTF-8")
        @ResponseBody
        public String toLogin(Model model, User user, HttpServletResponse response, HttpServletRequest request) {
    
            // 先從redis緩存中獲取數據
            String html = redisService.get(GoodsKey.goodsList, "", String.class);
            if (html != null)
                return html;
    
            // 查詢商品列表
            List<GoodsVo> goodsList = goodsService.getGoodsList();
            model.addAttribute("goodsList", goodsList);
    
            // 使用Thymeleaf模板引擎手動渲染數據
            WebContext springWebContext = new WebContext(request,response,request.getServletContext(),request.getLocale(),model.asMap());
            String goods_list = thymeleafViewResolver.getTemplateEngine().process("goods_list", springWebContext);
    
            // 存入redis
            if (goods_list!=null){
                redisService.set(GoodsKey.goodsList,"",goods_list);
            }
            return goods_list;
        }

    既然都說到這裏了, 就接着說還能怎麼玩吧…

    你看, 上面通過手動控制模板引擎的api竟然得到的已經渲染好的html源代碼了, 什麼叫做已經渲染好的? 說白了就是原來我在前端寫:th ${user},這樣的佔位符,現在已經被thymeleaf替換成了 張三 … (說的夠直接吧)

    拿到了已經渲染好的源代碼,我們就能通過IO操作,將這個文件寫到系統的某個目錄上去,不知道大家有沒有發現,去逛京東淘寶瀏覽某個商品頁面時,就會發現url是類似這樣的 www.jjdd.com/aguydg/ahdioa/1235345.html

    這個後綴123145.html 大概率說明京東使用靜態頁的技術, 這太明智了,面對如此巨大數量的商品信息後綴用数字來表示也不錯,而且速度還快不是?

    怎麼實現這種效果呢?

    就是上面說的,通過IO將這些源碼的數據寫到Linux中的某一個目錄下面, 文件名就是上面URL中的最後的数字, 通過Nginx做靜態資源服務器將這些xxx.html代理起來, 用戶再訪問的話就走這個靜態頁, 同樣不會接觸數據庫, 而且nginx還支持零拷貝,併發數5萬不是事…
    還有,後綴數組最好也別亂寫,直接使用商品id會更好,畢竟是先點擊商品獲取到id,再進入到靜態頁

    對象緩存技術

    緩存java中的對象, 比如將用戶的信息持久化進redis, 每次用戶查詢自己的信息先從redis中查詢,有的話直接返回,沒有的話再去查詢數據庫, 這樣同樣實現了在用戶和數據庫之間多添加出一層緩存,也可以大大的提高系統的吞吐量

    一般會怎麼玩呢?

    用戶的請求在查詢數據庫之前先嘗試從redis中獲取對象信息, redis中不存在的話就去數據庫中查詢, 查詢完結果后將這個結果換存進redis

    // todo 使用redis做緩存,減少和數據庫的接觸次數
    public Label findById(Long labelId) {
    
        // 先嘗試從緩存中查詢當前對象
        Label label = (Label) redisTemplate.opsForValue().get("label_id" + labelId);
    
        if (label==null){
            Optional<Label> byId = labelRepository.findById(labelId);
            if (!byId.isPresent()) {
                // todo 異常
            }
            label = byId.get();
    
            // 將查出的結果存進緩存中
            redisTemplate.opsForValue().set("label_id"+label.getId(),label);
        }
        return label;
    }

    當用戶update數據 ,先更新數據庫,再刪除/更新redis中響應的緩存

    public void update(Long labelId, Label label) {
        label.setId(labelId);
        Label save = labelRepository.save(label);
    
        // todo 數據庫修改成功后, 將緩存刪除
        redisTemplate.delete("label_id"+save.getId());
        }

    當用戶刪除數據,先刪除數據庫中的數據,再刪除redis中的緩存

    public void delete(Long labelId) {
        labelRepository.deleteById(labelId);
    
        // todo 數據庫修改成功后, 將緩存刪除
        redisTemplate.delete("label_id"+labelId);
    }

    模仿Vue實現頁面靜態化

    大家都在說頁面靜態化, 它真的有那麼神奇嗎? 其實也沒有那麼神奇, 說白了吧,傳統的網頁上的數據是通過模板引擎渲染上去的,(比如JSP或者是說thymeleaf這類模板引擎), 做了靜態化的網頁中數據的渲染通過js完成, 而且這個網頁和項目中的 靜態資源比如js,css 這類的文件放在一個目錄下面, 地位和普通的靜態資源相同, 還有個好處就是, 瀏覽器給的福利, 因為瀏覽器對靜態資源是有緩存的, 如果你善於觀察,就會發現有時候重複請求某個網頁,網頁正常显示,但是狀態碼是304… 請求依然會到達服務端,但是服務端會告訴瀏覽器它想訪問的頁面其實沒有變化, 於是瀏覽器就找到本地的緩存使用

    時下國內 最火爆的玩靜態頁面時下最火爆的技術就是 Angular.js 以及 Vue.js , 也確實好用, 前幾個月我寫過有關vue的筆記, 感興趣的同學可以去看看

    在本篇博客中恰恰好沒用到VUE, 但是實現靜態頁的思路和vue是大差不差的, 同樣是通過js代碼實現頁面的靜態化

    • 首先說後端的代碼怎麼寫?

    前後端分離嘛, 自然是json交互,後端通過@ResponseBody控制返回給前端json對象, 而且, 推薦大家也整一個VO對象,用這個VO對象將各式各樣的數據封裝在一起,一次性返回給前端, 這樣看上去,後端確實是簡單,也就是返回一個json對象

    • 前端怎麼寫呢?

    第一件事就是將html文件從template文件夾下move到static文件夾下面, 讓這個html文件和js/css文件稱兄道弟

    然後是給這個xxx.html該名字, 為啥要改名換目錄呢? 因為SpringBoot是約定大於編碼的, 在什麼目錄下面就是什麼文件, 此外Thymeleaf部分默認的配置信息如下

    @ConfigurationProperties(prefix = "spring.thymeleaf")
    public class ThymeleafProperties {
    
        private static final Charset DEFAULT_ENCODING = StandardCharsets.UTF_8;
    
        public static final String DEFAULT_PREFIX = "classpath:/templates/";
    
        public static final String DEFAULT_SUFFIX = ".html";
    

    沒辦法,這些配置信息默認就認為類路徑下的templates中都是xxx.html的文件

    第二件事是將html標籤中引入的類似thymeleaf這中命名空間都去掉,靜態頁不需要

    <!DOCTYPE HTML>
    <html xmlns:th="http://www.thymeleaf.org">
    <head>
        <title>商品列表</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <!-- jquery -->
        <!--<script type="text/javascript" th:src="@{/js/jquery.min.js}"></script>-->
        <script type="text/javascript" th:src="js/jquery.min.js"></script>

    第三件事寫一個ajax,當頁面一加載就觸發向後台發請求,獲取數據, 通過jQuery操作各個節點完成數據的渲染

    三步打完收工, 看上也不是很複雜, 但是我們的頁面就是已然成為了靜態頁面, 從此她會被瀏覽器緩存起來,只要這個頁面不發生變動,瀏覽器就會一直使用自己的緩存,在網絡上的數據傳輸量有多帶勁自己腦補,系統RT絕對飆升幾個數量級

    靜態資源的優化手段

    說一下市面上常見的靜態資源優化技術吧:

    • js/css 的壓縮與優化,減少流量
    • 多個js/css組合在一起,減少連接數量
    • Tengine 技術
    • webPack , 使用vue開發時,它就會將一整套vue的依賴打包一個js一個html文件,豈不是爽歪歪?
    • CDN加速技術, 很多雲服務廠商都有提供,而且價格也不貴,將體型大的靜態資源放在CDN上進行加速也是不錯的選擇
    • 使用Nginx做靜態資源代理,而且Nginx就支持零拷貝,還支持將數據文件壓縮后在網絡上傳輸 ,自身的併發量也很強大,當靜態資源服務器它絕對是不二首選, 相信我,你會愛上它的

    另外當多個用戶併發修改庫存時,竟然將庫存修改成了負數, 本身使用的數據庫引擎是 innodb是存在行級鎖的, 我們只要修改一下我們的sql就行 加條件 and stock_number > 0

    為了防止同一個用戶發送兩次請求,偶爾秒殺到多個商品的情況,我們去miaosha_user表中去建立一個唯一的索引,將userId建立唯一索引,不允許相同的userId出現兩次,從而避免上述的情況

    驗證碼技術

    • 好處

    讓用戶去輸入驗證碼的好處有很多, 除了驗證用戶的身份信息之外, 最明顯的好處就是分散用戶對系統的壓力, 前端如果不添加圖片驗證碼的可能在1s內系統需要承載1萬併發, 但是添加了圖片驗證碼, 就能將這1萬併發分散到10秒以內,甚至更多

    • 整體的思路:

      圖片驗證碼不過是個image, 所以說前端想展示它,肯定需要一個img標籤, 一個比較不好想的地方是啥呢? 就是這個圖片的路徑,src=啥的問題, 我們可以怎麼做呢? 可以直接通過這個往src中寫入後端的生成imge的Controller的路徑, 每次刷新頁面,它就會往這個路徑中發起請求, Controller中去生成一個image, 通過HttpServletResponse的獲取到輸出流, 將生成的圖片用流的發送會瀏覽器,再加上他是img標籤,這不就ok了?

    百度一下如何生成圖片驗證碼一類的技術,確實真的很多,我就不貼代碼了, 感興趣的同學自行百度,代碼一片片的

    • 如何實現點擊圖片完成刷新操作呢?

    因為這種圖片是靜態資源,如果你不禁用緩存,這個圖片就會被緩存下來, 要想每次點擊圖片都實現更換驗證碼的話,參考下面的js實現, 添加時間戳

       function refreshImageCode() {
            $("#verifyCodeImg").attr("src","/path/verifyCode?goodsId="+$("#goodsId").val()+"&timestamp="+new Date());
        }

    接口限流技術

    • 什麼是接口限流?

    舉個例子: 如說我們想限制在一分鐘內單個用戶訪問 A Controller中的a方法的次數不能超過30次, 這其實就是一種接口限流的需求, 可以有效的防止用戶的惡意訪問

    • 如何實現接口限流呢?

    其實這件事結合緩存來實現並非是一件難事,比如我就用上面的例子: 不是想對a方法進行限流嗎? 我們就在a方法中添加下面的邏輯

    偽代碼如下:

    public void a(User user){
        // 校驗user合法性
        // 限流
       Integer count = redis.get(user.getId());
        if(count!=null&&count>15)
          return ; // 到達了指定的闋值,直接返回不允許繼續訪問
        if(count==null){
            redis.set(user.getId(),30,1); // 表示當前用戶訪問了1次, 當前key的有效時間為30s
        }else{
            redis.incr(user.getId());
        }
    }
    • 如何不讓限流的邏輯侵染業務代碼呢

    我們可以使用攔截器技術, 如果我們的重寫了攔截器的preHandler()方法,它就會在執行Controller中的方法前進行回調, 再配合自定義註解技術, 後面簡直就是為所以為…

    示例:

    @Component
    public class AccessIntercepter extends HandlerInterceptorAdapter {
        // 在方法執行之前進行攔截
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
            if (handler instanceof HandlerMethod){
                HandlerMethod hd = (HandlerMethod) handler;
                LimitAccess methodAnnotation = hd.getMethodAnnotation(LimitAccess.class);
                if (methodAnnotation==null)
                    return true;
    
                // 解析註解
                int maxCount = methodAnnotation.maxCount();
                boolean needLogin = methodAnnotation.needLogin();
                int second = methodAnnotation.second();
                // todo
            }
            return true;
        }
    }

    結語: 最近又到考試周了,今個周六,下周三考試運籌學… 希望自己能平安度過…

    我是bloger 賜我白日夢, 歡迎點贊支持

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

    ※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

    ※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

    ※南投搬家前需注意的眉眉角角,別等搬了再說!

  • SpringBoot之微服務日誌鏈路追蹤

    SpringBoot之微服務日誌鏈路追蹤

    SpringBoot之微服務日誌鏈路追蹤

    簡介

    在微服務里,業務出現問題或者程序出的任何問題,都少不了查看日誌,一般我們使用 ELK 相關的日誌收集工具,服務多的情況下,業務問題也是有些難以排查,只能確定大致時間定位相關日誌。log-trace-spring-boot-starter 解決多個服務調用日誌的問題,它可以將一個完整的調用鏈給整合為一個完整有序的日誌。

    支持組件:

    • zuul 調用
    • feign 調用
    • restTemplate 調用

    日誌輸出格式:

    2019-11-14 14:22:07.796  INFO [log-trace-service-a-demo,ac8ffaaed5f343da,log-trace-zuul-demo,,] 88948 --- [nio-8081-exec-7] c.p.l.t.service.a.demo.TestController    : controller test2 執行 ac8ffaaed5f343da
    2019-11-14 14:23:15.569  INFO [log-trace-service-a-demo,04cf5392dc5c4881,log-trace-zuul-demo,,] 88948 --- [nio-8081-exec-9] c.p.l.t.service.a.demo.TestController    : controller test2 執行 04cf5392dc5c4881
    2019-11-14 14:24:44.183  INFO [log-trace-service-a-demo,86b5c555ce4f4451,log-trace-zuul-demo,,] 88948 --- [nio-8081-exec-1] c.p.l.t.service.a.demo.TestController    : controller test2 執行 86b5c555ce4f4451

    我們可以通過 86b5c555ce4f4451 id 進行查詢鏈路上的所有日誌信息。

    log-trace-service-a-demo 為當前應用。
    log-trace-zuul-demo 為上游應用。

    當然這些參數可以基於業務定製的。

    功能使用

    添加依賴

    ps: 實際version版本請使用最新版
    最新版本:

    <dependency>
      <groupId>com.purgeteam</groupId>
      <artifactId>log-trace-spring-boot-starter</artifactId>
      <version>0.1.0.RELEASE</version>
    </dependency>

    ps: 請基於 SpirngBoot2.1.x 版本使用

    配置應用

    這裏以3個微服務來舉例子。

    1. log-trace-zuul-demo 充當網關功能
    2. log-trace-service-a-demo 充當服務A
    3. log-trace-service-b-demo 充當服務B

    調用鏈路為:

    log-trace-zuul-demo -> log-trace-service-a-demo TestController#test -> log-trace-service-b-demo TestController#test

    訪問網關地址: http://127.0.0.1:8000/a/test

    網關日誌如下:

    2019-11-14 14:27:37.434 DEBUG [33b07a9c5f324375,this] 89996 --- [nio-8000-exec-1] c.p.l.t.s.i.zuul.TracePreZuulFilter      : zuul traceid 33b07a9c5f324375

    網關轉發至服務A

    服務A 日誌如下:

    2019-11-14 14:27:37.476  INFO [log-trace-service-a-demo,33b07a9c5f324375,log-trace-zuul-demo,,] 88948 --- [nio-8081-exec-5] c.p.l.t.service.a.demo.TestController    : controller test2 執行 33b07a9c5f324375

    服務A 調用 服務B

    服務B 日誌如下:

    2019-11-14 14:27:37.478  INFO [log-trace-service-b-demo,33b07a9c5f324375,log-trace-service-a-demo,,] 88952 --- [nio-8082-exec-3] c.p.l.t.servcie.b.demo.TestController    : header traceId 33b07a9c5f324375
    2019-11-14 14:27:37.478  INFO [log-trace-service-b-demo,33b07a9c5f324375,log-trace-service-a-demo,,] 88952 --- [nio-8082-exec-3] c.p.l.t.servcie.b.demo.TestController    : controller test 執行 33b07a9c5f324375
    2019-11-14 14:27:37.478  INFO [log-trace-service-b-demo,33b07a9c5f324375,log-trace-service-a-demo,,] 88952 --- [nio-8082-exec-3] c.p.l.trace.servcie.b.demo.TestService   : test 方法執行 33b07a9c5f324375
    2019-11-14 14:27:37.478  INFO [log-trace-service-b-demo,33b07a9c5f324375,log-trace-service-a-demo,,] 88952 --- [nio-8082-exec-3] c.p.l.trace.servcie.b.demo.TestService   : test1 方法執行 33b07a9c5f324375

    這樣可以在第三方日誌平台按照一個id進行查詢了。

    如 ELK 通過 33b07a9c5f324375 id 查詢出相關的所有鏈路調用。

    配置輸出格式

    目前支持以上參數:

    X-B3-ParentName 上游服務名稱
    X-B3-TraceId 為一個請求分配的ID號,用來標識一條請求鏈路。

    通過 application.properties 進行配置。

    spring.trace.log.format=X-B3-TraceId,X-B3-ParentName
    
    
    `spring.trace.log.format` 配置參數順序將影響日誌輸出格式。
    
    不配置將按照默認格式輸出。

    日誌輸出如下:

    2019-11-14 14:27:37.434 DEBUG [33b07a9c5f324375,this] 89996 --- [nio-8000-exec-1] c.p.l.t.s.i.zuul.TracePreZuulFilter      : zuul traceid 33b07a9c5f324375

    總結

    目前實現了日誌連貫的功能,後續將支持定製輸出 比如按照登陸人員id進行輸出,方便追蹤用戶行為。
    框架方便後續支持 Dubbo 等。

    示例代碼地址:

    作者GitHub:
    歡迎關注

    qq交流群: 812321371 微信交流群: MercyYao

    微信公眾號:

    本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    ※網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想知道最厲害的台北網頁設計公司推薦、台中網頁設計公司推薦專業設計師”嚨底家”!!

  • 農地轉用的特殊案例──北海道知內町太陽能發電廠(上)

    文:宋瑞文(加州能源特約撰述)

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

  • 西班牙東北部化學工廠爆炸 釀1死6傷

    摘錄自2020年1月15日中央社報導

    西班牙東北部發生化學工廠爆炸事故,造成一人喪命,傷及六人。當地媒體引述消防人員的說法表示,爆炸很有可能是化學意外所引起。

    「先鋒報」(La Vanguardia)和「國家報」(ElPais)等媒體在網站上表示,這起在塔拉戈納省(Tarragona)發生的爆炸引發衝擊波,造成一棟建築物坍塌,一人身亡。

    加泰隆尼亞救災服務處發言人證實,附近有建築物倒塌並有一人喪生,但還無法確定大樓倒塌與爆炸或大火有關。

    民防局建議附近民眾待在室內,並預防性緊鎖門窗,但說:「沒有證據顯示(爆炸)產生有毒的煙霾。」

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※為什麼 USB CONNECTOR 是電子產業重要的元件?

    ※網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

    ※想知道最厲害的台北網頁設計公司推薦、台中網頁設計公司推薦專業設計師”嚨底家”!!

  • 印尼水患災情慘重 雅加達省長遭民眾控告

    摘錄自2020年1月14日中央社報導

    印尼一名律師今天(14日)表示,在暴雨引發洪水及土石流災情,導致數十人喪命、數千人無家可歸後,雅加達省長阿尼斯(AniesBaswedan)因此被這座大城市的居民控告。

    超過200名水患受災民眾昨天在首都雅加達(Jakarta)地方法院提出集體訴訟,尋求總計約430億印尼盾(約新台幣9000萬元)的賠償金。

    這起訴訟指出,阿尼斯未能替雅加達這座大型城市提供合適的預警系統及有效的緊急救難措施,好讓人民的性命及財務損失降到最低。

    雅加達的法務局沒有立即回應置評請求。

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

    ※評比前十大台北網頁設計、台北網站設計公司知名案例作品心得分享

    ※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

    ※評比南投搬家公司費用收費行情懶人包大公開

  • 世界經濟論壇下週展開 聚焦永續性 童貝里籲終結化石燃料

    世界經濟論壇下週展開 聚焦永續性 童貝里籲終結化石燃料

    環境資訊中心外電;姜唯 翻譯;林大利 審校;稿源:ENS

    2020年第50屆世界經濟論壇年會將在1月21日於瑞士達沃斯展開,主題是「團結打造永續世界」(Stakeholders for a Cohesive and Sustainable World),呼籲企業提升氣候行動的積極度。會議為期四天,吸引來自世界各地的3,000多名與會者。

    今年的會議將有多位年輕的氣候行動者參與,包括17歲的瑞典環保少女童貝里(Greta Thunberg),盼說服世界各國領導人終結化石燃料經濟。

    2020年第50屆世界經濟論壇年會將在1月21日於瑞士達沃斯展開。照片來源: (CC BY-SA 2.0)

    童貝里等多名行動者1月10日在《衛報》發表評論:「我們要求在今年的論壇上,所有公司、銀行、機構和政府代表立刻停止所有對化石燃料探勘和開採的投資,立刻終止所有化石燃料補貼,並立刻徹底撤資化石燃料,」

    「我們要的不是2050年、2030年或是2021年前完成,我們要立刻做,現在馬上做。」

    根據2019年熱帶雨林行動網(Rainforest Action Network)、銀行追蹤(BankTrack)、原民環境網絡(Indigenous Environmental Network)、國際石油改革聯盟(Oil Change International)、美國山嶽協會(Sierra Club)和地球榮譽組織(Honor the Earth)共同發表,獲全球160多個組織背書的「」報告,自2015年簽署巴黎氣候協定至今,33家主要跨國銀行總共投資了1.9兆美元於化石燃料,而且過去兩年間,每年的融資額都在增加,其中6000億美元流向了100家最積極擴張的化石燃料公司。

    報告顯示,全球主要銀行的商業慣例與政府間氣候變遷專門委員會(IPCC)2018年的全球暖化特別報告形成強烈對比。IPCC的《》描繪出急速淘汰化石燃料的急迫性,並估計到2035年,全球每年對乾淨能源的投資需求為2.4兆美元。

    根據國際貨幣基金組織(IMF)的資料,光是在2017年,全世界就花了5.2兆美元在補貼化石燃料,包括煤炭、石油和天然氣。

    美國明尼蘇達州的礦業工廠排放有毒氣體。圖片來源:Tony Webster(CC BY 2.0)

    世界經濟論壇的主辦單位清楚收到環境行動人士的訊息,並且連續第四年讓會議保持氣候中立。

    論壇發言人艾爾奇(Aylin Elci)說:「我們竭盡所能減少排放,從材料和資源的使用著手,提供更多當地、當季和植物性飲食;運輸方面,該論壇的汽車和巴士車隊今年有90%為油電或電動車。」

    論壇發言人坎恩(Oliver Cann)表示,論壇無法減去的溫室氣體排放,主辦單位透過投資負碳排計畫來抵消。

    自2017年起,世界經濟論壇持續計算年會相關碳排,透過資助全球經過認證的排放抵銷計畫來抵消,包括工作人員和與會者搭機的產生的碳排。坎恩說,除了減少碳排放之外,這些措施還創造了就業機會,改善了生活條件。

    為了抵​​消2020年年會的碳排,論壇決定繼續資助兩個關鍵計畫。一是亞馬遜森林砍伐弧線上的「Jacundá」計畫,保護95,000公頃的原始森林並永續生產橡膠、阿薩伊果和巴西堅果。該計畫由社區主導,並在特種巴西保護區中執行,傳統社區在其中有管理資源的權利。

    巴西亞馬遜的「Jacundá」原始森林。圖片來源:

    第二個計畫是「綠色農場生物燃氣」,利用沼氣池處理產生的甲烷作為能源,殘留物則成為瑞士當地農場的肥料。

    此外,論壇還跟瑞士氣候解決方案供應商「南極」公司合作,資助世界各地多個與堆肥、乾淨爐灶、水力和風力發電相關的碳排抵銷計畫:

    印度「新德里堆肥」計畫每年將德里水果和蔬菜市場的73,000噸固體廢棄物轉成堆肥。

    柬埔寨國家厭氧消化計畫將18,000座農場的廢棄物轉為肥料,也取代了生質爐,自2006年起省下150,000噸的木材。

    在馬利,撒哈拉沙漠覆蓋了一半以上的國土。Katene乾淨爐灶計畫在當地的爐具製造工廠創造了400個工作機會,並種植了2400平方公尺的樹木對抗沙漠化。

    中國四川省麻咪澤自然保護區中,當地社區砍柴生火煮飯的需求威脅周圍的生物多樣性和大熊貓的棲息地。世界自然基金會的節柴灶推廣計畫正在努力解決這個問題。

    永續的水力發電是最有效的發電方式,但建築成本是發展的一大阻礙。 在巴西,Incomex Hydro計畫已經建了三座水力發電廠,生產乾淨能源,每年減少超過83,000噸的二氧化碳,可供應14,000戶住宅電力。

    減少排放仍然是世界經濟論壇2020年年會永續發展工作的重點,是其組織永續發展戰略的一部分,目的是透過抵消無法避免的排放,促進瑞士海內外的永續發展。

    在2020年年會召開之前,原民環境網執行總監高圖斯(Tom Goldtooth)提醒仍在投資化石燃料的銀行:「這些銀行所投資的未來,將損害未來七代以上子子孫孫的福祉。」

    World Economic Forum 2020 Aims for Sustainability DAVOS-KLOSTERS, Switzerland, January 12, 2020 (ENS)

    This year’s annual meeting of the World Economic Forum will call on corporations to raise their ambitions for climate action under the theme Stakeholders for a Cohesive and Sustainable World. The meeting’s 50th edition, opening January 21 and running for four days in Davos-Klosters, will bring together over 3,000 participants from throughout the world.

    Young climate activists, including Swedish climate activist Greta Thunberg, 17, will be attending the World Economic Forum this year in an effort to convince world leaders to end the fossil fuel economy.

    “We demand that at this year’s Forum, participants from all companies, banks, institutions and governments immediately halt all investments in fossil fuel exploration and extraction, immediately end all fossil fuel subsidies and immediately and completely divest from fossil fuels,” wrote Thunberg and other young climate activists in an opinion piece in “The Guardian” newspaper on January 10.

    “We don’t want these things done by 2050, 2030 or even 2021, we want this done now – as in right now,” they wrote.

    Since the 2015 Paris Agreement on climate, 33 major global banks have collectively poured US$1.9 trillion into fossil fuels, according to a March 2019 report, “Banking on Climate Change” by six nonprofit organizations and endorsed by over 160 organizations around the world.

    Released by Rainforest Action Network, BankTrack, Indigenous Environmental Network, Oil Change International, Sierra Club, and Honor the Earth, the report reveals that 33 global banks have provided US$1.9 trillion to fossil fuel companies since the adoption of the Paris climate accord at the end of 2015. The amount of financing has risen in each of the past two years.

    Of this total, $600 billion went to 100 companies that are most aggressively expanding fossil fuels. The report shows that the business practices of the world’s major banks stand in contrast to a 2018 special report on global warming by the Intergovernmental Panel on Climate Change (IPCC). That report, “Global Warming of 1.5 °C,” outlined the critical need for a rapid phase-out of fossil fuels and estimated that the world’s clean energy investment needs are $2.4 trillion per year up to 2035.

    In 2017 alone, the world spent $5.2 trillion subsidizing fossil fuels – coal, oil and gas – according to the International Monetary Fund.

    The organizers of the World Economic Forum have already got the message. For the fourth year in a row, the annual meeting will be climate neutral.

    “We do everything we can to reduce emissions in the first place,” said Forum spokeswoman Aylin Elci. This involves looking at the use of materials and resources, the food served – more local, seasonal and plant-based than ever before – and transportation. The Forum’s fleet of cars and buses is 90 percent hybrid or electric this year.

    All greenhouse gas emissions that the Forum cannot eliminate, organizers offset by investing in plans that reduce emissions levels in the atmosphere, says Forum spokesman Oliver Cann.

    The Forum has been calculating and offsetting all emissions connected with the annual meeting, including staff and participant air travel, by funding certified offsetting projects around the world since 2017. Beyond carbon emission reduction, these initiatives also create jobs and improved living conditions, says Cann.

    To offset the 2020 Annual Meeting, the Forum has decided to continue supporting two key projects. The Jacundá project in the Amazonian Arc of Deforestation known for its disappearing tropical forest protects an area of 95,000 hectares of native forest and sustainably produced rubber, açai and brazil nuts. The project is community-led and implemented on a specific Brazilian category of protected areas in which traditional communities own the right to manage the resources.

    The second project is Biogas for Greener Farms, which uses methane generated by the processing of manure in biogas digesters as energy and the residue as fertilizer for local farms in Switzerland.

    Cann details other offsetting projects supported by the Forum in collaboration with South Pole, a provider of global climate solutions headquartered in Zurich, Switzerland with 17 offices around the world.

    Waste Composters

    Composting New Dehli ensures that solid waste from fruit and vegetable markets in Delhi, India, does not end up in landfills and transforms 73,000 tonnes of it into compost every year.

    In Cambodia, the National Biodigester program not only treats waste then used as fertilizer by over 18,000 farms but also replaces biomass stoves, saving 150,000 tonnes of wood since 2006.

    Clean Cookstoves

    In Mali, Katene Clean Cookstoves created 400 jobs in a local stove manufacturing factory and planted 2,400m2 of trees to counter desertification in a country that is more than half covered by the Sahara Desert.

    Communities gathering firewood in China’s Mamize Nature Reserve in Sichuan province threaten the surrounding biodiversity and the habitat of giant pandas, an issue the WWF Mamize Firewood-Saving Cook Stove Project has been working to address.

    Clean Energy – Hydro and Wind Power

    Sustainable hydro plants are the most efficient way to generate electricity, but their cost can be a barrier to construction. In Brazil, Incomex Hydro has set up three hydro plants, which produce clean energy and reduce over 83,000 tonnes of CO2 a year – the equivalent of electricity for 14,000 houses.

    Reducing emissions remains the first priority of the World Economic Forum’s sustainability efforts for the Annual Meeting 2020, which forms part of its broader institutional sustainability strategy.

    The aim is to use offsetting to neutralize the emissions that cannot be avoided, in a way that fosters sustainable development in Switzerland and abroad.

    In advance of the 2020 annual meeting, Tom Goldtooth, executive director of the Indigenous Environmental Network, has a message for banks that are funding fossil fuel development. “These banks are funding a future that will cost the well-being of the next seven generations of life and beyond.”

    ※ 全文及圖片詳見:

    作者

    如果有一件事是重要的,如果能為孩子實現一個願望,那就是人類與大自然和諧共存。

    於特有生物研究保育中心服務,小鳥和棲地是主要的研究對象。是龜毛的讀者,認為龜毛是探索世界的美德。

    延伸閱讀

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※台北網頁設計公司這麼多,該如何挑選?? 網頁設計報價省錢懶人包"嚨底家"

    ※網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

    ※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

    ※南投搬家費用,距離,噸數怎麼算?達人教你簡易估價知識!

  • 馬紹爾深受暖化威脅 前總統籲勿視若無睹

    摘錄自2020年1月16日中央社報導

    台灣的太平洋友邦馬紹爾群島是受氣候變遷威脅最大的國家之一,前總統海妮受訪時不僅表示遺憾有些國家未嚴肅看待氣候議題,還提到執政時曾接受台灣援助促進女權。

    路透社報導,在海拔低的馬紹爾群島,全球暖化造成海平面緩慢升高,連卸任總統海妮(Hilda Heine)都必須在她樸素的家裡處理漫入花園的鹹海水。她說,「情況一年比一年糟」。

    馬紹爾群島由超過30個熱帶珊瑚環礁組成,其中多數環礁的平均海拔僅約兩公尺。海妮受訪時說:「全世界都在談氣候變遷,對我們而言,這是攸關存亡的威脅,我們已經盡力把這項議題搬上國際場域了。」

    過去四年,馬紹爾群島發布八次衛生緊急狀態,包括透過蚊子傳染的登革熱、茲卡病毒、屈公病疫情爆發,海妮認為這都與氣候變遷有關。

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※想知道網站建置、網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計及後台網頁設計

    ※不管是台北網頁設計公司、台中網頁設計公司,全省皆有專員為您服務

    ※Google地圖已可更新顯示潭子電動車充電站設置地點!!

    ※帶您來看台北網站建置,台北網頁設計,各種案例分享

  • 美國環團告川普政府 不滿未考量台塑建廠風險

    摘錄自2020年1月16日中央社報導

    美國環保團體及社區組織今(15日)控告川普政府,抗議發放環境許可讓台灣塑膠公司在南部路易斯安那州建造塑膠廠區;根據計畫,這項建案規模達94億美元(約新台幣2837億元)。

    美聯社報導,這起向華盛頓聯邦法院提起的訴訟指控美國陸軍工兵署(US Army Corps of Engineers)未公開這項建廠計畫對環境造成的傷害及對公眾的健康風險,也未適當考量台灣塑膠公司給環境帶來的損害。

    位於紐奧良的環保團體「健康灣」(Healthy Gulf)是原告團體之一,執行主任沙爾托(Cyn Sarthou)在新聞稿中表示:「陸軍工兵署正加速發放許可給台塑,這家公司2019年因傾倒數十億顆塑膠粒到德州水道及墨西哥灣沿岸水域而被認定有罪,這完全令人無法接受。」

    根據訴訟文書,「健康灣」及其他團體成員擔心破壞濕地會傷害野生生物,讓鄰近地區面對洪澇更加脆弱;也擔心有毒排放物有害健康和環境,和貨車和駁船往來頻繁,會增加噪音、汙染及危險發生的機率。

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

    ※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

    ※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

    ※南投搬家前需注意的眉眉角角,別等搬了再說!

  • 中國向美國買稀土 美中貿易協議內容引議論

    摘錄自2020年1月16日中央社報導

    中美16日達成第一階段貿易協議,協議中驚現中國向美國購買稀土的承諾。由於中國是全球最大的稀土生產國,貿易戰中也曾宣稱以限制稀土出口反制美國,這項承諾立即引起外界議論。

    在中美第一階段貿易協議中,中國承諾未來兩年向美國購買2000億美元產品。路透社報導,其中包括鈧和釔等兩種用於生產燈具和電腦的稀土。稀土曾被視為中國的「殺手鐧」,如今中國卻向美國購買,箇中原因引起各方議論。

    此外,報導也指出,美國國防部近幾個月已採取行動,為美國的稀土、稀土磁鐵項目提供資金,目的是要建立一個沒有中國的「國內供應鍊」。

    本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    ※網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

    ※想知道最厲害的台北網頁設計公司推薦、台中網頁設計公司推薦專業設計師”嚨底家”!!

  • 2016中國國際新能源汽車峰會

    2016中國國際新能源汽車峰會

    2016中國國際新能源汽車峰會將于明年3月在北京召開

    隨著化石能源、石油資源的日益枯竭,大氣污染和溫室氣體的排放,加之傳統內燃機驅動汽車的能源利用率很低,新能源汽車已成為未來發展的必然趨勢。

    新能源汽車是我國戰略性新興產業之一,也是我國應對氣候變化、保障能源安全、減少溫室氣體排放、防治城市空氣污染的重要途徑之一。近10年來,我國把新能源汽車作為未來汽車的主要發展方向,從國家層面給予了極大的關注和支持。去年,我國新能源汽車產銷量較上年增長了三倍,這種爆發式增長,是國家對於新能源汽車不斷加大政策扶持的結果。

    在這一市場背景下,2016中國國際新能源汽車峰會將立足於中國新能源汽車行業的實際情況,進一步解析業內人士比較關心的政策法規和最新的技術動向以及未來的發展趨勢,深入探討電控集成系統、無線充電技術以及新能源汽車切入能源互聯網的契機等熱點話題。這裡還將是一個您與政府高層、OEM製造商、行業領袖和專家進行跨國項目交流的最佳平臺。

    會議亮點:
    •    十三五新能源汽車發展規劃
    •    充電新標準出臺和實施時間
    •    新能源汽車產業的全球市場戰略
    •    探索未來電池新材料技術
    •    三元鋰電池最新技術
    •    驅動電機的效率提升和性能優化
    •    電池管理系統如何提高整包級別的安全性
    •    電機控制器如何改善電機運行效率並降低能耗
    •    整車控制器的關鍵技術
    •    充電樁技術和網路建設
    •    無線充電技術的巨大市場前景
    •    插電式混合動力的技術和市場
    •    電動汽車電氣系統的設計與優化
    •    燃料電池汽車未來的商業化路徑
    •    新能源商用車市場剖析和關鍵技術
    •    開放技術專利能否推動新能源汽車行業加速發展
    •    互聯網如何推動新能源汽車產業升級
    •    新能源汽車切入能源互聯網的契機
    •    與傳統汽車租賃公司的合作模式
    •    金融租賃如何解圍新能源汽車的商業模式困局

    請聯繫:
    Lucy Shi 石小姐
    電話: +86 21- 33191337-623
    手機:+86 13166042312
    郵箱:
    會議網址:

    本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

    【其他文章推薦】

    ※帶您來了解什麼是 USB CONNECTOR  ?

    ※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

    ※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

    ※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

    ※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益